Я установил экземпляр EC2 на AWS.
Правильно настроили мои группы безопасности, чтобы экземпляр мог подключаться к Интернету, например
ubuntu@ip-10-17-0-78:/data$ ping www.google.com
PING www.google.com (216.58.211.164) 56(84) bytes of data.
64 bytes from dub08s01-in-f4.1e100.net (216.58.211.164): icmp_seq=1 ttl=46 time=1.02 ms
64 bytes from dub08s01-in-f4.1e100.net (216.58.211.164): icmp_seq=2 ttl=46 time=1.00 ms
Однако, когда я выполняю запуск в контейнере, это невозможно:
root@d1ca5ce50d3b:/app# ping www.google.com
ping: www.google.com: Temporary failure in name resolution
update_1: проблема с подключением связана с тем, что контейнеры инициируются с помощью docker stack deploy
в определенных стеках;
Когда я просто запускаю автономный контейнер, подключение к Интернету есть:
ubuntu@ip-10-17-0-78:/data$ docker run -it alpine:latest /bin/ash
/ # ping www.google.gr
PING www.google.gr (209.85.203.94): 56 data bytes
64 bytes from 209.85.203.94: seq=0 ttl=38 time=1.148 ms
64 bytes from 209.85.203.94: seq=1 ttl=38 time=1.071 ms
update_2: после некоторого расследования выясняется, что:
- автономный контейнер, действительно наследует dns-nameserver экземпляра EC2;
- контейнеры, запущенные через
docker stack deploy
, нет;
т.е. это из docker swarm
-инициированного контейнера:
ubuntu@ip-10-17-0-78:~$ docker exec -it d1ca5ce50d3b bash
root@d1ca5ce50d3b:/app# cat /etc/resolv.conf
search eu-west-1.compute.internal
nameserver 127.0.0.11
options ndots:0
update_3: та же проблема, когда я начинаю стек с docker-compose
вместо docker stack deploy
; похоже, не является swarm
специфической проблемой;
update_4: я явно добавил gfile /etc/docker/daemon.json
со следующим содержимым:
{
"dns": ["10.0.0.2", "8.8.8.8"]
}
ubuntu @ ip-10-17-0-78: / data $ docker run busybox nslookup google.com Сервер: 8.8.8.8 Адрес: 8.8.8.8:53
Неавторизованный ответ: Имя: google.com Адрес: 216.58.211.174
*** Не могу найти google.com: нет ответа
но поиск по-прежнему не работает:
Есть предложения, почему это может происходить?
curl
вместоping
. - person Shiva   schedule 18.07.2018