Docker не получает конфигурацию DNS хоста после обновления - PullRequest
2 голосов
/ 02 апреля 2019

После обновления Docker до Docker версии 18.09.2, сборка 6247962 в Ubuntu 18.04.2 LTS, конфигурация DNS внутри контейнера всегда указывает только на DNS-серверы Google.Ранее файл /etc/resolv.conf внутри контейнера содержал бы конфигурацию DNS хоста.

Файл /etc/resolv.conf теперь выглядит следующим образом:

$ sudo docker run -it centos:6 bash
[root@459f5102cc74 /]# cat /etc/resolv.conf  
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

# No DNS servers known.

nameserver 8.8.8.8
nameserver 8.8.4.4
[root@459f5102cc74 /]#

Единственное найденное мной на данный момент исправление - этовручную настроить DNS в /etc/docker/daemon.json:

$ cat /etc/docker/daemon.json 
{
  "dns": ["10.0.0.1"],
  "dns-search": ["example.org"]
}

После перезапуска демона Docker я вижу:

$ sudo docker run -it centos:6 bash
[root@d1049c2c3d96 /]# cat /etc/resolv.conf 
search example.org
nameserver 10.0.0.1

Есть ли способ заставить Docker автоматически подобрать конфигурацию DNS хоста?

(PS Хост настроен статически, т. Е. Не использует DHCP.)

...