Docker — это популярная платформа, позволяющая разработчикам с легкостью управлять приложениями в изолированных окружениях. Платформа предоставляет мощные инструменты контейнеризации, что делает ее незаменимым инструментом в разработке современного программного обеспечения. Однако для ее эффективного использования необходимо знать основные команды, которые позволяют управлять контейнерами и их образами. В этой статье рассмотрим основные команды Docker, которые помогут вам начать работать с контейнерами.
Перенос серверов в облако
безопасно и с гарантией результата.
Предоставим грант до 1 000 000 ₽ на облачную
инфраструктуру и возьмем на себя весь процесс.
Основные команды 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
- docker restart
Перезапускает контейнер. Позволяет остановить контейнер и затем опять запустить.
Примеры использования:
Перезапуск одного контейнера:
docker restart mycontainer
Перезапуск нескольких:
docker restart first_container second_container third_container
- 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. Позволяет получить доступ к готовым образам.
Если 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
Используется для привязки тома к контейнеру при запуске. Позволяет контейнеру получить доступ к постоянному хранилищу данных, предоставляемому томом. В командах дополнительно используем ключ -d для запуска в фоне.
Примеры использования:
Привязка существующего тома:
docker run -d -v myvolume:/data myimage
Привязка тома с указанием дополнительных опций (например, read only — ro):
docker run -d -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.
Подготовили для вас выгодные тарифы на облачные серверы
477 ₽/мес
657 ₽/мес
Заключение
Мы рассмотрели основные команды Docker, которые позволяют управлять контейнерами и образами. Изучив эту платформу более глубоко, вы убедитесь в том, что Docker предоставляет мощные возможности для разработки, тестирования и развертывания приложений, обеспечивая эффективное использование ресурсов и изоляцию приложений. Желаем успехов!
