Назад | Перейти на главную страницу

Как предотвратить добавление хэшей к созданным именам контейнеров с помощью docker-compose?

У меня есть сервер с несколькими контейнерами lxc. В некоторых контейнерах установлен докер. Обычно действие компоновки докеров в этих контейнерах LXC приводит к именам контейнеров в формате appname_service_1, например wordpress_app_1 и wordpress_db_1, когда app и db это две службы, которые вызываются в wordpress составить файл - вы это знаете.

Но сегодня я создал еще один контейнер LXC и установил в него докер. Настройка идентична другим контейнерам, благодаря ansible. Однако имена контейнеров докеров разные, например wordpress_db_1_c9de200f9abd. Хеш в конце отличается, когда я удаляю контейнер и создаю его заново.

Поскольку это делает контейнеры не такими одноразовыми, как они должны быть, потому что он уничтожает любые маршруты между контейнерами, я хотел бы знать, почему эти хэши вообще добавляются. Все контейнеры LXC имеют один и тот же докер и одну и ту же установленную версию docker-compose. Я хотел бы вообще запретить использование этих хэшей в именах моих докер-контейнеров.

Почему они возникают сейчас, а не раньше?

Исправлено в версии 1.23.2:

Отменено изменение 1.23.0, добавляющее случайные строки к именам контейнеров, созданным с помощью docker-compose up, что приводило к проблемам с адресуемостью. Примечание. Контейнеры, созданные при выполнении docker-compose, будут по-прежнему использовать случайно сгенерированные имена, чтобы избежать конфликтов во время параллельных запусков.

Это новое поведение docker-compose, которое отражает поведение режима swarm. Это вообще не влияет на возможность подключения контейнеров через сеть, поскольку в вашем случае есть псевдонимы DNS для имени службы, которые всегда включены. app и db. Нет необходимости указывать полное имя контейнера для подключения к реплике службы с использованием циклического DNS.

Из примечания к выпуску:

Важная заметка

Схема именования по умолчанию для контейнеров, созданных Compose в этой версии, изменилась с <project>_<service>_<index> к <project>_<service>_<index>_<slug>, где <slug> представляет собой генерируемую случайным образом шестнадцатеричную строку. Перед обновлением обязательно обновите скрипты, использующие старую схему именования.