Docker Container не использует хост DNS - PullRequest
0 голосов
/ 07 ноября 2018

я использую настраиваемую сеть докеров с именем "backend-network"

[root@localhost docker]# docker inspect backend-network
    {
        "Name": "backend-network",
        "Id": "18180c0c1ef14460a25b66b7fb971e090f7bb85f549921704d11937af70766c7",
        "Created": "2018-08-07T12:36:02.4175991+09:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "531c1ecbe993ee13e632fbd9697b392ee989d756ff60c07eae96a700901aaa01": {
                "Name": "splash",
                "EndpointID": "c9e4e7ec319ecf9cdcbb9ca50170efb63c4fca33bcbbabb584c4a4e41576b15d",
                "MacAddress": "02:42:ac:12:00:05",
                "IPv4Address": "172.18.0.5/16",
                "IPv6Address": ""
            },
            "c6a5aa827e901b6b6d7b35d4a8be5a5b2fc73f1a7a385416ce200e847d400b21": {
                "Name": "flask",
                "EndpointID": "5d5abb3bc964d251379a7f6a84cb5b5d9bddac9b778f2222d52aba657b28dd34",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            },
            "da839143fb58d738e38922c669efa332c545fee4dd0a5b733583ed7b8df60875": {
                "Name": "django",
                "EndpointID": "f046e9cc93f895b12ce1c4de983fbe0e54a3904460c04db3ba238ba84ba82327",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            },
            "fc9e6ef183c81a3fe7dd29ecb5c17c0dc27fb803ef8e214d4f344a2b3407ec54": {
                "Name": "mongo",
                "EndpointID": "ab94182f4b175f105ab01ccbbc43b7dad37cf5506eee831168fd5bd9094ccde8",
                "MacAddress": "02:42:ac:12:00:04",
                "IPv4Address": "172.18.0.4/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }

Но в каждом контейнере не используется хост DNS.

хост DNS есть.

[root@localhost docker]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.88.1

и контейнер DNS

(django) root@da839143fb58:/opt/django_backend/scrapy_app# cat /etc/resolv.conf
nameserver 127.0.0.11
options ndots:0

я добавил

nameserver 192.168.88.1

resolv.conf контейнера, и он работает, но запрос слишком длинный.

Я думаю, что первый поиск в

nameserver 127.0.0.11

и поиск

nameserver 192.168.88.1

как я могу настроить Docker-сеть для хоста DNS?

удалить

nameserver 127.0.0.11

тогда не сообщайте другой контейнер по имени. как

 (django) root@da839143fb58:/opt/django_backend/scrapy_app# ping splash
 ping: splash: Name or service not known

1 Ответ

0 голосов
/ 07 ноября 2018

Контейнеры Docker разрешают запросы DNS через встроенный DNS-сервер (это IP-адрес, который вы видите в /etc/resolv.conf контейнера - см. Примечание внизу в документации ). В зависимости от вашей конфигурации встроенный DNS-сервер перенаправляет запрос на ваш хост (по умолчанию) или другой DNS-сервер. Вы можете передать пользовательский DNS-сервер с флагом --dns -.

Более подробную информацию вы найдете в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...