Основные команды Docker, которые вам необходимо знать для эффективной работы
Docker — это популярная платформа, позволяющая разработчикам с легкостью управлять приложениями в изолированных окружениях. Платформа предоставляет мощные инструменты контейнеризации, что делает ее незаменимым инструментом в разработке современного программного обеспечения. Однако для ее эффективного использования необходимо знать основные команды, которые позволяют управлять контейнерами и их образами. В этой статье рассмотрим основные команды Docker, которые помогут вам начать работать с контейнерами.
Основные команды Docker
Чтобы изучать команды Docker было удобнее, мы решили сделать несколько списков команд, разбив их на тематические группы. Вы узнаете, что делает определенная команда Docker, а затем будут приведены примеры кода для закрепления.
Команды для управления контейнерами
- docker run
Создает и запускает контейнер из образа. Принимает различные параметры и аргументы, которые определяют настройки контейнера.
Примеры использования:
Запуск контейнера в фоновом режиме, проброс порта с хоста на контейнер и передача переменной окружения:
docker run -d -p 8080:80 -e ENV_VAR=value nginx
Запуск контейнера с ограничением ресурсов, в данном примере — количества оперативной памяти:
docker run --memory=2g myimage
- docker start
Запускает остановленный контейнер. Позволяет возобновить выполнение контейнера, который был ранее остановлен.
Примеры использования:
Запуск одного остановленного контейнера:
docker start mycontainer
Запуск нескольких:
docker start first_container second_container third_container
- docker stop
Останавливает работающий контейнер. Позволяет завершить выполнение контейнера и отключить его.
Примеры использования:
Остановка одного работающего контейнера:
docker stop mycontainer
Остановка нескольких:
docker stop first_container second_container third_container
Остановка по времени (в данном примере — через 30 секунд):
docker stop -t 30 mycontainer
- docker restart
Перезапускает контейнер. Позволяет остановить контейнер и затем опять запустить.
Примеры использования:
Перезапуск одного контейнера:
docker restart mycontainer
Перезапуск нескольких:
docker restart first_container second_container third_container
Перезапуск через определенное время:
docker restart -t 30 mycontainer
- docker rm
Удаляет один или несколько контейнеров, которые уже остановлены. Позволяет очистить систему от не используемых контейнеров.
Примеры использования:
Удаление одного контейнера:
docker rm mycontainer
Удаление нескольких:
docker rm first_container second_container third_container
Принудительное удаление (позволяет удалить контейнер, который выполняется в данный момент):
docker rm -f mycontainer
- docker ps
Отображает список активных контейнеров в системе. Позволяет получить различную информацию о работающих контейнерах, включая их ID, имена, статус, порты, использование ресурсов.
Примеры использования:
Отображение списка только работающих контейнеров:
docker ps
Отображение списка всех (включая остановленные):
docker ps -a
Отображение размера занимаемого дискового пространства:
docker ps -s
Команды для управления образами
- docker pull
Загружает образы из удаленного репозитория Docker Hub. Позволяет получить доступ к готовым образам.
Примеры использования:
Загрузка последней версии Ubuntu:
docker pull ubuntu
Здесь ubuntu
— это имя образа, но версия не указана, поэтому будет загружена последняя.
Загрузка определенной версии:
docker pull ubuntu:20.04
- docker build
Нужна для сборки пользовательского образа Docker на основе Dockerfile. Dockerfile — это текстовый файл с инструкциями для сборки образа, включая базовый образ, установку зависимостей, копирование файлов.
Примеры использования:
Сборка образа из текущего каталога, используя Dockerfile в этом каталоге:
docker build -t myimage:latest .
Сборка образа из удаленного репозитория Git, который содержит Dockerfile:
docker build -t myimage:latest https://github.com/username/repo.git#branch
- docker push
Загружает пользовательский образ в Docker Hub или другие хранилища образов. Позволяет делиться созданным образом с другими пользователями Docker.
Примеры использования:
Загрузка в репозиторий по умолчанию:
docker push username/myimage:1.0
Загрузка в другое хранилище (в данном примере — репозиторий ECR):
docker push myecr/myimage:latest
- docker rmi
Удаляет образы с локального хоста. Позволяет освободить место, удалив не используемые или устаревшие образы.
Примеры использования:
Удаление одного образа:
docker rmi myimage:1.0
Удаление нескольких:
docker rmi myimage:1.0 myotherimage:latest
- docker images
Выводит список образов, которые находятся на вашем локальном хосте. Она позволяет просматривать информацию о доступных образах: идентификаторы, размеры, теги и прочее.
Примеры использования:
Вывод всех образов:
docker images
Вывод образов по конкретному репозиторию:
docker images myrepository/myimage
Команды для управления хранилищами данных
- docker volume create
Создает новый том Docker. Тома в Docker представляют собой постоянные хранилища данных, которые используются контейнерами для хранения и обмена информацией между ними. Тома позволяют сохранять данные даже после удаления или перезапуска контейнеров.
Примеры использования:
Создание нового тома:
docker volume create myvolume
Создание с указанием драйвера:
docker volume create --driver local myvolume
Создание тома с добавлением меток:
docker volume create --label mylabel=myvalue myvolume
- docker run -v
Используется для привязки тома к контейнеру при запуске. Позволяет контейнеру получить доступ к постоянному хранилищу данных, предоставляемому томом.
Примеры использования:
Привязка существующего тома:
docker run -v myvolume:/data myimage
Привязка тома с указанием дополнительных опций (например, read only
):
docker run -v myvolume:/data:ro myimage
- docker volume rm
Удаляет том с локального хоста. При удалении все данные, связанные с этим томом, будут потеряны, поэтому будьте осторожны.
Примеры использования:
Удаление одного тома:
docker volume rm myvolume
Удаление нескольких:
docker volume rm first_volume second_volume third_volume
- docker volume ls
Используется для вывода списка всех доступных томов на локальном хосте. Позволяет просмотреть существующие тома и получить информацию о них, в том числе имена и идентификаторы.
Примеры использования:
docker volume ls
Будет выведен список всех доступных томов на вашем локальном хосте. Результат будет содержать столбцы с информацией о каждом томе, включая их имена, идентификаторы и дополнительные сведения, если они есть. Пример вывода:
DRIVER VOLUME NAME
local myvolume1
local myvolume2
Команды Docker Compose
Docker Compose работает поверх Docker и позволяет управлять множеством контейнеров в рамках одного проекта. Давайте рассмотрим основные команды (принципы работы большинства из них вам уже знакомы):
- docker-compose up — запускает приложение со всеми контейнеры, информация о которых есть в docker-compose.yml. Если файл не указан, по умолчанию используется файл в текущем каталоге;
- docker-compose down — останавливает и удаляет все контейнеры, а также тома, связанные с ними;
- docker-compose start — запускает остановленные контейнеры;
- docker-compose stop — останавливает работу запущенных контейнеров без их удаления;
- docker-compose restart — перезапускает контейнеры;
- docker-compose build — позволяет обновить образы или создать их заново, если они были изменены;
- docker-compose logs — выводит журналы состояния;
- docker-compose ps — отображает текущее состояние контейнеров;
- docker-compose pull — загружает последние версии образов для сервисов, описанных в файле docker-compose.yml.
Заключение
Мы рассмотрели основные команды Docker, которые позволяют управлять контейнерами и образами. Изучив эту платформу более глубоко, вы убедитесь в том, что Docker предоставляет мощные возможности для разработки, тестирования и развертывания приложений, обеспечивая эффективное использование ресурсов и изоляцию приложений. Желаем успехов!