Я пытаюсь использовать DNS Docker, чтобы дать моим контейнерам полное доменное имя, которое они используют для связи друг с другом. Для этого я использую сетевые псевдонимы, которые частично работают (они разрешаются до нужных IP-адресов), но для сервисов, которые вызывают проблемы, все еще существует имя хоста по умолчанию.
У меня есть В следующем примере docker создайте файл, в котором показана проблема.
version: '3.6'
services:
client1:
container_name: client1
image: openjdk:8-alpine
command: [sh, -c, "nslookup app-two.domain.com && sleep 100"]
hostname: app-one.domain.com
domainname: domain.com
networks:
dns-network:
aliases:
- app-one.domain.com
client2:
container_name: client2
image: openjdk:8-alpine
command: [sh, -c, "nslookup app-one.domain.com && sleep 100"]
hostname: app-two.domain.com
domainname: domain.com
networks:
dns-network:
aliases:
- app-two.domain.com
networks:
dns-network:
name: dns-network
Это приведет к выводу, аналогичному следующему:
client2 | Name: app-one.domain.com
client2 | Address 1: 192.168.224.2 client1.dns-network
client1 | Name: app-two.domain.com
client1 | Address 1: 192.168.224.3 client2.dns-network
Несмотря на правильное полное доменное имя (* .domain.com) разрешается в нужный контейнер, все еще есть ссылка на имя по умолчанию (* .dns-network). Я пропускаю какую-то конфигурацию для достижения этого или это просто невозможно с Docker DNS? Если это невозможно, что мне нужно сделать, чтобы добиться этого?