Docker容器无法连接到主机:没有路由到主机

Bri*_*asa 5 networking docker docker-compose

我一直在尝试使用docker compose设置docker环境。让我感到困扰的一个问题是,我的docker容器无法访问我的主机。

我使用以下撰写文件设置了一个容器:

version: '3'
services:
  webapp:
    image: ...
    ports:
      - "8080:8080"
Run Code Online (Sandbox Code Playgroud)

当我进入容器时,我可以ping通我的主机:

ping ${dockerHostIP}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用容器内的curl检索主页时:

curl http://${dockerHostIP}:8080
Run Code Online (Sandbox Code Playgroud)

我得到:

curl: (7) Failed connect to ${dockerHostIP}:8080; No route to host
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚解决此无主机路由错误的方法。不幸的是,由于Web应用程序内部使用其主机名发出请求,因此我需要能够执行此操作。

Traceroute结果:

traceroute ${dockerHostIP}
traceroute to ${dockerHostIP} (${dockerHostIP}), 30 hops max, 60 byte packets
 1  ${dockerHostName} (${dockerHostIP})  0.039 ms !X  0.012 ms !X  0.007 ms !X
Run Code Online (Sandbox Code Playgroud)

147*_*.3k 5

令我惊讶的是,在我看来,这实际上是一个防火墙问题。

更新/启用docker主机上的tcp端口[2375]可以解决此问题。

sudo firewall-cmd --zone=public --add-port=2375/tcp --permanent

sudo firewall-cmd --reload 
Run Code Online (Sandbox Code Playgroud)

有用的链接:1. 在此处输入链接描述 2. 在此处输入链接描述