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

时间:2017-05-17 17:56:30

标签: amazon-web-services docker dns swarm

我创建了一个经理和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

1 个答案:

答案 0 :(得分:2)

似乎问题已经解决了。

我必须将"dns": ["8.8.8.8","8.8.4.4"]添加到/etc/docker/daemon.json

我试图在/ etc / default / docker中做同样的事情,它没有用,我猜这是旧方法。