Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Основные команды Docker, которые вам необходимо знать для эффективной работы

Роман Андреев
Роман Андреев
Технический писатель
17 августа 2023 г.
1953
7 минут чтения
Средний рейтинг статьи: 5

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 предоставляет мощные возможности для разработки, тестирования и развертывания приложений, обеспечивая эффективное использование ресурсов и изоляцию приложений. Желаем успехов!

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону