docker - 什么可能会阻止从Docker容器到外部服务器的连接

标签 docker

我有一个计划从Docker连接的外部服务器abc.internalcorp.com。

我试图从主机对服务器进行ping操作,并且可以正常工作。

ping abc.internalcorp.com
PING abc.internalcorp.com (172.xx.xx.xx) 56(84) bytes of data.
64 bytes from abc.internalcorp.com (172.xx.xx.xx): icmp_seq=1 ttl=47 time=32.6 ms
^C
--- abc.internalcorp.com ping statistics ---
2 packets transmitted, 1 received, 50% packet loss, time 999ms
rtt min/avg/max/mdev = 32.673/32.673/32.673/0.000 ms

但是,当我从Docker容器执行相同的命令时,没有看到任何响应。怎么会这样
docker exec -ti docker-container bash
root@b7bdf44feb7f:/# ping abc.internalcorp.com
PING abc.internalcorp.com (172.xx.xx.xx) 56(84) bytes of data.
<No response>

此ping只是一个测试。 abc.internalcorp.com实际上是数据库服务器,我无法连接到它。我可以连接到其他数据库服务器。

更新:
我在〜/ .docker / daemon.json中更改了bip
{
  "bip": "193.168.1.5/24",
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": true,
  "experimental": false
}

但是我仍然有同样的问题
docker exec -ti docker-container bash
root@b7bdf44feb7f:/# ip addr show eth0
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:c1:a8:01:01 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 193.168.1.1/24 brd 193.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever

编辑
找出问题。我的docker中还有其他网络具有相同的网络子网。删除它们并可以正常工作

最佳答案

需要做两件事。

  • 通过编辑daemon.json更改网络

    {
    “注册表镜像”:[],
    “不安全的注册表”:[],
    “调试”:是的,
    “实验性”:错误,
    “bip”:“12.12.0.1/24”
  • 删除docker中可能与ip冲突的其他网络。您使用以下命令检查其他网络是否在相同范围内

    docker 检查'networkname'
  • 关于docker - 什么可能会阻止从Docker容器到外部服务器的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56760128/

    相关文章:

    docker - Kafka无法在Linux机器中与Zookeeper连接

    asp.net-mvc - 使用 Linux 容器将 ASP.NET MVC 托管/部署到 docker

    docker - hub.docker.com 是否使用 "--no-cache"进行自动构建?

    docker - Kubernetes 拨号 tcp myIP :10250: connect: no route to host

    docker - APPDATA 在默认的 docker-compose.override 文件中在哪里初始化

    mongodb - 在 docker 中映射卷

    docker - 无法 dockerize mlflow

    android - 在 docker 容器中构建 android 项目仅构建中间文件夹

    django - Elastic Beanstalk 上的 Docker + Django

    适用于 Windows 的 Docker 桌面 : Where should I place SSH private key in a windows container for git?