docker
).docker images
* Загрузка образа из реестра (например, Docker Hub): docker pull <имя_образа>[:<тег>]
docker run
): Создание и запуск экземпляра образа. Необходимо настроить различные параметры запуска.--name <имя_контейнера>
: Присваивает имя контейнеру для удобного управления. Если не указано, Docker генерирует случайное имя.-d
или --detach
: Запускает контейнер в фоновом режиме (detached). Контейнер продолжает работать после закрытия терминала.-p
или --publish [hostPort:]containerPort[/tcp|udp]
: Публикует порты контейнера на хостовой машине, делая приложение доступным извне.hostPort
: Порт на хостовой машине (опционально). Если не указан, Docker выберет случайный свободный порт.containerPort
: Порт, который слушает приложение внутри контейнера (объявлен в EXPOSE
Dockerfile или известен разработчику)./tcp
или /udp
: Протокол (по умолчанию TCP).docker run -p 80:80 nginx
(пробросить порт 80 контейнера на порт 80 хоста)docker run -p 8080:80 nginx
(пробросить порт 80 контейнера на порт 8080 хоста)docker run -p 127.0.0.1:8080:80 nginx
(пробросить порт 80 контейнера на порт 8080 хоста только на локальном интерфейсе)-v
или --volume [host_path:]container_path[:ro|rw]
или --volume <имя_тома>:<путь_в_контейнере>[:ro|rw]
: Монтирует тома для обеспечения постоянного хранения данных или обмена файлами.host_path:container_path
): Связывает каталог или файл на хостовой машине с каталогом внутри контейнера.host_path
: Абсолютный путь к каталогу или файлу на хосте.container_path
: Абсолютный путь к каталогу внутри контейнера.:ro
: Монтирование только для чтения (read-only).:rw
: Монтирование для чтения и записи (read-write - по умолчанию).docker run -v /data:/var/lib/mysql mysql
(смонтировать каталог /data
хоста в /var/lib/mysql
контейнера)<имя_тома>:<путь_в_контейнере>
): Использует именованные тома, созданные Docker.<имя_тома>
: Имя созданного тома (например, my_db_data
).container_path
: Абсолютный путь к каталогу внутри контейнера.docker run -v my_db_data:/var/lib/postgresql/data postgres
-e
или --env <KEY=VALUE>
: Устанавливает переменные окружения внутри контейнера.docker run -e POSTGRES_PASSWORD=mysecretpassword postgres
--network <имя_сети>
: Подключает контейнер к указанной Docker-сети. По умолчанию контейнеры подключаются к сети bridge
.docker network create <имя_сети>
docker run --network my-app-network my-app
--restart <политика>
: Определяет политику перезапуска контейнера при сбое (no
, on-failure[:max-retries]
, always
, unless-stopped
).docker run --restart always my-web-app
(всегда перезапускать контейнер, если он останавливается)--rm
: Автоматически удаляет контейнер после его остановки. Полезно для временных контейнеров.docker run --rm my-utility-container
--entrypoint <команда>
: Переопределяет ENTRYPOINT
, определенный в Dockerfile.--cmd <аргументы>
: Переопределяет CMD
, определенный в Dockerfile.-u
или --user <uid>[:<gid>]
или --user <username>[:<groupname>]
: Запускает процессы внутри контейнера от указанного пользователя или пользователя и группы.docker ps
-a
или --all
: Показать все контейнеры (включая остановленные).docker stop <имя_контейнера> или <ID_контейнера>
SIGTERM
контейнеру и дает время на корректное завершение.docker kill <имя_контейнера> или <ID_контейнера>
SIGKILL
, немедленно завершая процесс.docker restart <имя_контейнера> или <ID_контейнера>
docker logs <имя_контейнера> или <ID_контейнера>
-f
или --follow
: Следить за логами в реальном времени.--tail <число>
: Показать последние N строк логов.docker exec -it <имя_контейнера> или <ID_контейнера> <команда>
-it
: Интерактивный терминал (pseudo-TTY).docker exec -it my-web-app bash
(запустить оболочку bash внутри контейнера my-web-app
)docker cp <путь_на_хосте> <имя_контейнера>:<путь_в_контейнере>
или docker cp <имя_контейнера>:<путь_в_контейнере> <путь_на_хосте>
docker rm <имя_контейнера> или <ID_контейнера>
-f
или --force
: Принудительное удаление запущенного контейнера (не рекомендуется).bash
docker run --name my-nginx -d -p 80:80 nginx
bash
docker run --name my-postgres -d -e POSTGRES_PASSWORD=mysecret -v pg_data:/var/lib/postgresql/data postgres
(Предполагается, что том pg_data
уже создан: docker volume create pg_data
)my-python-app
в фоновом режиме:
bash
docker run --name my-app -d my-python-app
(Если приложение слушает порт, необходимо добавить -p
)bash
docker run --rm alpine echo "This container will be removed"
--restart
может помочь).Ручное развертывание контейнеров предоставляет прямой контроль над запуском и управлением отдельными контейнерами с помощью командной строки Docker. Хотя оно полезно для простых сценариев и понимания основ, для более сложных многоконтейнерных приложений рекомендуется использовать инструменты оркестрации или композиции, такие как Docker Compose или Kubernetes.
docker run
с различными параметрами.docker ps
, docker stop
, docker start
, docker logs
, docker exec
).