Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Кратко о задаче
Чтобы изучать команды Docker было удобнее, мы решили сделать несколько списков команд, разбив их на тематические группы. Вы узнаете, что делает определенная команда Docker, а затем будут приведены примеры кода для закрепления.
Команды для управления контейнерами
Создает и запускает контейнер из образа. Принимает различные параметры и аргументы, которые определяют настройки контейнера.
Запуск контейнера в фоновом режиме, проброс порта с хоста на контейнер и передача переменной окружения:
docker run -d -p 8080:80 -e ENV_VAR=value nginxЗапуск контейнера с ограничением ресурсов, в данном примере — количества оперативной памяти:
docker run --memory=2g myimageЗапускает остановленный контейнер. Позволяет возобновить выполнение контейнера, который был ранее остановлен.
Запуск одного остановленного контейнера:
docker start first_container second_container third_containerОстанавливает работающий контейнер. Позволяет завершить выполнение контейнера и отключить его.
Остановка одного работающего контейнера:
docker stop first_container second_container third_containerПерезапускает контейнер. Позволяет остановить контейнер и затем опять запустить.
Перезапуск одного контейнера:
docker restart mycontainer
docker restart first_container second_container third_containerУдаляет один или несколько контейнеров, которые уже остановлены. Позволяет очистить систему от не используемых контейнеров.
Удаление одного контейнера:
docker rm first_container second_container third_containerПринудительное удаление (позволяет удалить контейнер, который выполняется в данный момент):
Отображает список активных контейнеров в системе. Позволяет получить различную информацию о работающих контейнерах, включая их ID, имена, статус, порты, использование ресурсов.
Отображение списка только работающих контейнеров:
Отображение списка всех (включая остановленные):
Отображение размера занимаемого дискового пространства:
Команды для управления образами
Загружает образы из удаленного репозитория Docker Hub. Позволяет получить доступ к готовым образам.
Если Docker Hub недоступен, можно использовать наш бесплатный прокси, который возобновляет этот доступ.
Загрузка последней версии Ubuntu:
Здесь ubuntu — это имя образа, но версия не указана, поэтому будет загружена последняя.
Загрузка определенной версии:
Нужна для сборки пользовательского образа Docker на основе Dockerfile. Dockerfile — это текстовый файл с инструкциями для сборки образа, включая базовый образ, установку зависимостей, копирование файлов.
Сборка образа из текущего каталога, используя Dockerfile в этом каталоге:
docker build -t myimage:latest .Сборка образа из удаленного репозитория Git, который содержит Dockerfile:
docker build -t myimage:latest https://github.com/username/repo.git#branchЗагружает пользовательский образ в Docker Hub или другие хранилища образов. Позволяет делиться созданным образом с другими пользователями Docker.
Загрузка в репозиторий по умолчанию:
docker push username/myimage:1.0Загрузка в другое хранилище (в данном примере — репозиторий ECR):
docker push myecr/myimage:latestУдаляет образы с локального хоста. Позволяет освободить место, удалив не используемые или устаревшие образы.
docker rmi myimage:1.0 myotherimage:latestВыводит список образов, которые находятся на вашем локальном хосте. Она позволяет просматривать информацию о доступных образах: идентификаторы, размеры, теги и прочее.
Вывод образов по конкретному репозиторию:
docker images myrepository/myimageКоманды для управления хранилищами данных
Создает новый том Docker. Тома в Docker представляют собой постоянные хранилища данных, которые используются контейнерами для хранения и обмена информацией между ними. Тома позволяют сохранять данные даже после удаления или перезапуска контейнеров.
docker volume create myvolumeСоздание с указанием драйвера:
docker volume create --driver local myvolumeСоздание тома с добавлением меток:
docker volume create --label mylabel=myvalue myvolumeИспользуется для привязки тома к контейнеру при запуске. Позволяет контейнеру получить доступ к постоянному хранилищу данных, предоставляемому томом. В командах дополнительно используем ключ -d для запуска в фоне.
Привязка существующего тома:
docker run -d -v myvolume:/data myimageПривязка тома с указанием дополнительных опций (например, read only — ro):
docker run -d -v myvolume:/data:ro myimageУдаляет том с локального хоста. При удалении все данные, связанные с этим томом, будут потеряны, поэтому будьте осторожны.
docker volume rm myvolume
docker volume rm first_volume second_volume third_volumeИспользуется для вывода списка всех доступных томов на локальном хосте. Позволяет просмотреть существующие тома и получить информацию о них, в том числе имена и идентификаторы.
Будет выведен список всех доступных томов на вашем локальном хосте. Результат будет содержать столбцы с информацией о каждом томе, включая их имена, идентификаторы и дополнительные сведения, если они есть. Пример вывода:
DRIVER VOLUME NAME
local myvolume1
local myvolume2Docker 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.
Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.