调查Docker连接问题
我正在尝试从MacOS上运行的docker容器访问host-x.com,但失败:调查Docker连接问题,docker,networking,Docker,Networking,我正在尝试从MacOS上运行的docker容器访问host-x.com,但失败: $ docker run ubuntu:latest \ /bin/bash -c \ 'apt-get update && apt-get -y install netcat && nc -v -z -w 3 host-x.com 443 &> /dev/null && echo "Online" || echo "
$ docker run ubuntu:latest \
/bin/bash -c \
'apt-get update &&
apt-get -y install netcat &&
nc -v -z -w 3 host-x.com 443 &> /dev/null && echo "Online" || echo "Offline"'
Offline
它在以下情况下工作正常:
- 我在另一台机器上运行docker容器:
Online
- 我在Mac上运行它,在docker容器外:
nc -v -z -w 3 host-x.com 443 &> /dev/null && echo "Online" || echo "Offline"' Online
- 我从docker容器在Mac上运行它,用于其他目标主机:
$ docker run ubuntu:latest \ /bin/bash -c \ 'apt-get update && apt-get -y install netcat && nc -v -z -w 3 www.google.com 443 &> /dev/null && echo "Online" || echo "Offline"' Online
root@55add56ecc11:/# ping host-x.com
PING s1-host-x.com (172.22.187.101) 56(84) bytes of data.
"bip" : "10.10.10.1/8"
root@37c61acc5aa5:/# nc -v -z -w 3 host-x.com 443
s1-host-x.com [172.22.187.101] 443 (?) : Connection timed out
traceroute -m 10 -w 1 host-x.com
traceroute to host-x.com (172.22.187.101), 10 hops max, 60 byte packets
1 10.10.10.1 (10.10.10.1) 0.444 ms 0.388 ms 0.364 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
我该如何调查呢?可能是您的防火墙(pf)阻止了它。检查主机上的防火墙规则并检查路由 很可能是路线的问题。使用检查路由表
ip r
或
netstat-rn
在docker容器和主机内部。确保通过在容器内运行
ipa
命令应用了对bip的更改,该容器的地址应在bip范围内。另外,可能您的新bip范围10.10.10.1也与公司网络相冲突。在这种情况下,您应该联系您的网络管理员,并询问他您应该为docker容器选择什么网络。也可能是host host-x.com正在阻止来自docker容器IP地址的请求。尝试使用交互式shell进入容器,并对问题进行一点故障排除。例如,您的容器是否解析DNS名称?@whites11我更新了我的问题,我们在interactive shell中找到了更多的发现,但他们没有给出任何关于原因的线索。我还能试什么?