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中执行相同的操作,但它不起作用,我想这是旧的方法。