Site icon 8HOST.COM

Как выбрать имя для контейнера Docker

Когда вы создаёте контейнер Docker, он получает универсальный уникальный идентификатор (UUID). Этот ID позволяет избежать конфликта имён и способствует автоматизации процессов Docker без вмешательства человека. Также он определяет хост и сеть контейнера. Однако такие идентификаторы сложны для восприятия человека (по умолчанию они содержат 64 символа, хотя бывает и сокращенный вариант – 12 символов).

Чтобы упростить работу пользователей, Docker добавляет в имя контейнера два случайных слова, соединённых подчёркиванием, например evil_ptolemy. Так проще отличить один контейнер от другого. Однако случайные слова, как и UUID, не описывают функции контейнера, а это усложняет управление.

Ниже вы найдёте советы по выбору имен для контейнеров.

1: Указывайте имя контейнера при его запуске

Команда docker run может превратить evil_ptolomy в нечто более описательное. Для этого используется флаг –name=имя _контейнера.

Самостоятельно задав имя контейнера, вы без труда сможете найти его в выводе других команд (например, docker ps).

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

Введите в командную строку или Dockerfile:

docker run --name= имя _контейнера

К примеру, если вы запустите контейнер на основе образа nginx и выберете ему имя:

docker run --name nginx -d nginx

позже вы сможете без труда найти его в списке запущенных контейнеров:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
08f333ef7216        nginx               "nginx -g 'daemon off"   15 seconds ago      Up 14 seconds       80/tcp, 443/tcp      nginx

При этом имя не будет отображаться в командной строке или в лог-файлах контейнера. Для этого нужно также присвоить имя хоста.

2: Присваивание имени хоста

Значение, поставляемое командой –hostname, указывается в файлах контейнера /etc/hostname и /etc/hosts. В дальнейшем оно появляется в командной строке. Это важно для настройки DNS и определения уровней установок, состоящих из нескольких контейнеров. Имя хоста появится в лог-файлах контейнера; в дальнейшем эти файлы записываются в независимые тома, где с помощью имени хоста будет проще идентифицировать контейнер.

Введите в командную строку или Dockerfile:

docker run --hostname=value OR docker run -h value

Флаги –name и –hostname очень полезны, однако они имеют малое отношение к самим именам контейнеров – в основном они обеспечивают автоматическую чистку контейнера.

3: Автоматическое удаление контейнеров

При устранении неполадок полезно иметь доступ ко всем остановленным контейнерам: там вы сможете найти полезные данные и исследовать состояние контейнера. Однако в некоторых ситуациях лучше, если контейнер автоматически удаляется после его остановки. Для этого существует флаг –rm

Важно! При работе с томами Docker флаг –rm удалит все тома, не указанные по наименованию

Введите в командную строку или Dockerfile:

docker run --rm

Все перечисленные выше флаги команды docker run (–name, –hostname и –rm) помогут вам разобраться с компонентами Docker и отличить один контейнер от другого.

Читайте также:  Использование Docker-контейнеров