Docker 的 Centos VM 在尝试连接到自身时无法访问主机
Centos VM with Docker getting host unreachable when trying to connect to itself
我在 Centos VM 上安装了 Docker 运行ning,具有桥接网络。 运行宁
ifconfig
表明我的虚拟机获得了一个有效的 IP 地址。现在我 运行 在 docker container/image 中安装一些软件(在其他 docker/networking 配置中工作)。我在 docker 容器中的一些代码 运行ning 使用 SSL 连接 (java) 连接到自身。在所有其他 运行 配置中,这非常有效。但是当 运行 以桥接模式与 Centos VM 和 docker-compose 连接时,我收到 SSL Connect 异常,错误:主机无法访问。我可以使用相同的 IP 地址 ping 并通过 ssh 连接到虚拟机,一切正常。很抱歉,我不能 post 实际的 setup/code 和脚本,因为它对 post 来说太多了,而且它也是专有的。
我对此感到困惑 - 为什么我在上述配置中得到主机无法访问?
仅供参考,我通过使用 Docker 提供的默认 "bridged" 容器解决了 centos 上的问题,但将以下内容添加到我的 firewalld 配置中:
firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --reload
service firewalld restart
您可能还需要打开一个端口以允许外部通信,例如:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
我的解决方案是切换到 Ubuntu 虚拟机,因为将我的 docker compose 切换到默认的 "bridged" 网络会破坏我的别名,而这正是我真正需要的
这里唯一剩下的问题是为什么配置firewalld后,docker-compose上用户配置的网络无法访问外部IP,迫使我们切换到默认桥接网络
我在 Centos VM 上安装了 Docker 运行ning,具有桥接网络。 运行宁
ifconfig
表明我的虚拟机获得了一个有效的 IP 地址。现在我 运行 在 docker container/image 中安装一些软件(在其他 docker/networking 配置中工作)。我在 docker 容器中的一些代码 运行ning 使用 SSL 连接 (java) 连接到自身。在所有其他 运行 配置中,这非常有效。但是当 运行 以桥接模式与 Centos VM 和 docker-compose 连接时,我收到 SSL Connect 异常,错误:主机无法访问。我可以使用相同的 IP 地址 ping 并通过 ssh 连接到虚拟机,一切正常。很抱歉,我不能 post 实际的 setup/code 和脚本,因为它对 post 来说太多了,而且它也是专有的。
我对此感到困惑 - 为什么我在上述配置中得到主机无法访问?
仅供参考,我通过使用 Docker 提供的默认 "bridged" 容器解决了 centos 上的问题,但将以下内容添加到我的 firewalld 配置中:
firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --reload
service firewalld restart
您可能还需要打开一个端口以允许外部通信,例如:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
我的解决方案是切换到 Ubuntu 虚拟机,因为将我的 docker compose 切换到默认的 "bridged" 网络会破坏我的别名,而这正是我真正需要的
这里唯一剩下的问题是为什么配置firewalld后,docker-compose上用户配置的网络无法访问外部IP,迫使我们切换到默认桥接网络