有人遇到与docker pull相关的问题。从那以后,我们最近将docker升级到18.03.1-ce。尽管我们不确定是否与docker有关,但只是想知道是否有人遇到过此问题。
我们已经使用tcp dump完成了一些故障排除,正在进行的DNS查询在1024个数据包的允许限制内。这是对EC2的限制,我们还尝试通过修改/etc/resolv.conf文件以使用更高的retry \ timeout值来解决该问题,但这似乎无济于事。
我们逐行进行了数据包捕获,发现了一些东西。我们发现一些回应是负面的。如果您使用Wireshark,则可以使用“ udp.stream eq 12”作为过滤器来查看否定答案之一。我们可以看到解析器发送了一个答案“ No such name”。所有得到否定响应的请求都在请求中使用以下名称:
354XXXXX.dkr.ecr.us-east-1.amazonaws.com.ec2.internal
你们中的任何人都会偶然知道为什么将ec2.internal添加到DNS末尾吗?如果对此名称进行挖掘,它将失败。因此,似乎错误的名称被发送到服务器,并以“无此主机”作为响应。码头工人是否发送了错误的DNS名称以进行解析。
我们看到此问题间歇地发生。期待帮助。预先感谢。
预期行为
5.0.25_61: Pulling from rrg
Digest: sha256:50bbce4af6749e9a976f0533c3b50a0badb54855b73d8a3743473f1487fd223e
Status: Downloaded newer image forXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/rrg:5.0.25_61
实际行为
docker-compose up -d rrg-node-1
Creating rrg-node-1
ERROR: for rrg-node-1 Cannot create container for service rrg-node-1: Error response from daemon: Get https:/XXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/v2/: dial tcp: lookup XXXXXXXX.dkr.ecr.us-east-1.amazonaws.com on 10.5.0.2:53: no such host
重现问题的步骤
docker pull XXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/rrg:5.0.25_61
docker版本的输出:
(Docker版本18.03.1-ce,内部版本3dfb8343b139d6342acfd9975d7f1068b5b1c3d3) 码头工人信息的输出:
([ec2-user@ip-10-5-3-45 ~]$ docker info
Containers: 37
Running: 36
Paused: 0
Stopped: 1
Images: 60
Server Version: swarm/1.2.5
Role: replica
Primary: 10.5.4.172:3375
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint
Nodes: 12
Plugins:
Volume:
Network:
Log:
Swarm:
NodeID:
Is Manager: false
Node Address:
Kernel Version: 4.14.51-60.38.amzn1.x86_64
Operating System: linux
Architecture: amd64
CPUs: 22
Total Memory: 80.85GiB
Name: mgr1
Docker Root Dir:
Debug Mode (client): false
Debug Mode (server): false
Experimental: false
Live Restore Enabled: false
WARNING: No kernel memory limit support)