Docker & Python

Часть 2 – основные команды

В предыдущем посте «Часть 1 – терминология» мы рассмотрели основные термины, теперь посмотрим на основные команды для работы с докер.

Общее состояние докер

docker info

эта команда отвечает за вывод текущего состояния докер, а именно количество образов в кэше, количество запушённых контейнеров, версии библиотек докер и т.д.

Список образов

Команда: docker image ls

Вывод команды будет иметь следующий вид:

Здесь перечислены названия образов, их версии, хэши размеры и даты создания.

Детальная информация по образу

Команда: docker image inspect <имя образа>

Эта команда выведет результат в формате JSON, в котором есть информация об слоях образа, переменных окружения, выполняемых командах и т.п.

Скачивания образа

Команда: docker pull <имя образа>[:<тег>]

Данная команда позволяет скачать указанный образ, с необходимой версией и поместить его в локальные репозиторий. При этом если значение тег не указано, то используется “latest”. Важно понимать, что указание конкретной версии крайне желательно, ведь никто не может гарантировать, что ваше приложение будет работать с будущими версиями окружения. А при новом разворачивание контейнера в будущем, может быть скачена именно новая версия, с которой приложение скорее всего еще не проверялось.

По умолчанию образ получается с реестра Docker Hub, но можно и явно указать другой реестр, например:

docker pull docker-private.registry:1337/nginx

Если реестр требует аутентификации, то необходимо выполнить команду:

docker login docker-private.registry:1337

Запуск образа

Команда: docker run [-p <внешний порт на хосте>:<внутренни порт в контейнере>] <имя образа>

Эта команда позволяет запустить образ в контейнере, при этом опциональный параметр -p позволяет выполнить соединение указанного номера TCP/UDP порта на хост компьютере с TCP/UDP портом внутри контейнера. Например:

docker run -p 8080:80 nginx

Запустит образ с сервером nginx и при этом порт 8080 на локальном компьютере, будет связан с портом 80 внутри контейнера (на котором nginx слушает соединения). Таким образом доступ к nginx будет через порт 8080 локального хоста.

Список работающих контейнеров

Команда: docker ps

Вывод команды имеет следующий формат:

В первой колонке указан уникальный идентификатор контейнера. В последней уникальное имя образа, при этом имена образов генерируются автоматически (если не были заданы при создании). ). Также указано время работы, время создание контейнера и порты используемые контейнером.

По умолчанию команда показывает только работающие контейнеры, но вместе с опцией “-a”, команда отобразит и остановленные контейнеры: docker ps -a

Остановка контейнера

Для остановки используется команда docker stop <идентификатор контейнера>

Принудительное завершение контейнера

Для принудительной остановки используется команда: docker kill <идентификатор контейнера>.

Применяется в тех случаях когда команды stop не достаточно.

Удаление контейнера

Команда: docker rm <идентификатор контейнера>

Удаляет остановленный контейнер. <идентификатор контейнера> можно посмотреть командой «docker ps -a»

Удаление образа

Команда: docker rmi <идентификатор образа>

Удаляет не используемый образ. <идентификатор образа > можно посмотреть командой «docker ls»

В следующей части «Часть 3 – файл Dockerfile» рассмотрим правила написание сценариев для создания своих образов.

Сборка образа

Команда: docker build <путь к контексту или URL>

Данная команда произведет сборку образа и подготовит его к запуску. Стоит отметить, что все операции по сборке кэшируются и если в текущем слое слоях ниже не произошло изменений, то вместо выполнения действий заново берется кэшированный результат, что ускоряет процесс сборки.

Также можно сразу добавить метку для образа через ключ “-t”.

Например: docker build -t sathya:hello-world .

Эта комнада соберет образ в контексте текущей директории (значение “.”) и присвоит образу имя “sathya:hello-world”, где значение sathya – это название репозитория, а hello-world – тега.

Присвоение имени образу

Команда: docker tag <идентификатор образа> <имя для образа>

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

 

Обсуждение закрыто.