Как выбрать имя для контейнера 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-контейнеров
Tags: Docker