Разница между container_name и hostname в Docker Compose заключается в следующем:
- container_name — это фактическое имя контейнера при его запуске, которое задаётся вручную, а не генерируется Docker Compose. 13 Если это имя отличается от имени блока в services:, оба имени будут использоваться как DNS-имена для межконтейнерной связи. 1
- hostname — это имя хоста контейнера. 12 Определённое здесь имя записывается в файл /etc/hosts. 1 Оно используется контейнером для идентификации в сети Docker и выполнения сетевых задач, например, связи между контейнерами или доступа к службам, которые запускаются внутри контейнеров. 2
Таким образом, container_name используется для определения имени контейнера, а hostname — для определения имени хоста контейнера и его идентификации в сети Docker. 12