gpt4 book ai didi

docker - 调查 Docker 连接问题

转载 作者:IT老高 更新时间:2023-10-28 12:45:32 26 4
gpt4 key购买 nike

我正在尝试从在 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 "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

更新 #1

  1. 按照建议,我登录到容器并检查了 DNS。主机名已正确解析:

    root@55add56ecc11:/# ping host-x.com
    PING s1-host-x.com (172.22.187.101) 56(84) bytes of data.
  2. 但是,不会发送 ping 包。我虽然这可能是由内部 docker 网络和公司网络(172.17.X.X)中的 IP 范围冲突引起的。我尝试在我的守护进程配置中修复 docker bridge IP 地址并重新检查连接,但没有帮助:

    "bip" : "10.10.10.1/8"
  3. 我与公司中的其他 3 人(包括我在内共 4 人)进行了核实。 50% 可以访问此主机(在线),50% 不能(离线)。

  4. 我尝试了@mko 的建议,在容器内以交互模式使用 netcat。仍然超时。

     root@37c61acc5aa5:/# nc -v -z -w 3 host-x.com 443
    s1-host-x.com [172.22.187.101] 443 (?) : Connection timed out
  5. 我尝试追踪路线但没有成功:

    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 * * *

我该如何调查?

最佳答案

很可能是路线的问题。检查路由表
知识产权
或者
网络统计 -rn
在 docker 容器和您的主机内。确保通过在容器内运行 ip a 命令应用了您对 bip 的更改,它的地址应该在您的 BIP 范围内。此外,您的新 bip 范围 10.10.10.1 也可能与公司网络发生冲突。在这种情况下,您应该联系您的网络管理员并询问他应该为您的 docker 容器选择哪个网络。也有可能主机 host-x.com 正在阻止来自您的 docker 容器 IP 地址的请求。

关于docker - 调查 Docker 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50724314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com