AWS上的Docker swarm群集服务无法访问互联网

我创build了一个经理和两个工人的docker群( Docker version 17.03.1-ce )。 所有的swarm节点都可以“ping stackoverflow.com”,但是在群集服务容器里我可以“ping 8.8.8.8”而不是“ping stackoverflow.com”,它们不能parsing域名。

/usr/sbin/dhclient-script

 search eu-central-1.compute.internal nameserver 10.0.0.2 

和我在/usr/sbin/dhclient-script其中一个容器

 search eu-central-1.compute.internal nameserver 127.0.0.11 options ndots:0 

Dockernetworking:

 $ docker network ls NETWORK ID NAME DRIVER SCOPE ID bridge bridge local ID docker_gwbridge bridge local ID host host local ID ingress overlay swarm ID my_overlay overlay swarm ID none null local 

我以这种方式启动泊坞窗服务:

 docker service create \ --name myservice \ --replicas 1 \ --endpoint-mode dnsrr \ --network my_overlay \ --constraint 'node.role == manager' \ --env COOKIE='SRV insert indirect nocache maxidle 30m maxlife 8h' \ --env VIRTUAL_HOST='myservice' \ --env SERVICE_PORTS='8080' \ myservice_image 

AWS VPC和安全组configuration正确我认为,因为ec2实例可以到达外部域名,并且可以在外部访问。 为什么我的服务无法解决例如stackoverflow.com

看来问题解决了。

我想添加"dns": ["8.8.8.8","8.8.4.4"]/etc/docker/daemon.json

我试图在/ etc / default / docker中执行相同的操作,但它不起作用,我想这是旧的方法。