Docker Полные доменные имена DNS - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь использовать 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? Если это невозможно, что мне нужно сделать, чтобы добиться этого?

...