我创建了一个经理和2名工作人员的泊坞群(Docker version 17.03.1-ce
)。所有swarm节点都可以“ping stackoverflow.com”但是在swarm服务容器中我可以“ping 8.8.8.8”而不是“ping stackoverflow.com”,它们无法解析域名。
我在/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
Docker networks:
$ 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服务:
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和安全组配置正确,因为ec2实例可以访问外部域名,也可以从外部访问。
为什么我的服务无法解决,例如stackoverflow.com
?
答案 0 :(得分:2)
似乎问题已经解决了。
我必须将"dns": ["8.8.8.8","8.8.4.4"]
添加到/etc/docker/daemon.json
。
我试图在/ etc / default / docker中做同样的事情,它没有用,我猜这是旧方法。