小编Dan*_*nny的帖子

访问 docker 容器内的其他 docker 服务时超时

我的主机 web1 和 web2 上运行着 2 个 docker 容器。容器web1将8080端口映射到主机18080端口,web2将8080端口映射到主机28080端口。主机的IP地址是192.168.20.111(没错是局域网)。我可以从同一局域网中的其他机器访问 192.168.20.111:18080 和 192.168.20.111:28080。

当我尝试从 web1/web2 容器中访问 192.168.20.111:18080 (curl 192.168.20.111:18080) 或 192.168.20.111:28080 时,出现超时错误。

但是,运行在主机8080端口的Apache服务器可以通过192.168.20.111:8080从web1/web2容器内访问,这意味着从容器到主机的路由是明确的。

所以我的问题是:为什么会发生超时错误以及如何从 docker 容器访问 192.168.20.111:18080?

这是我用来启动web2的docker-compose文件(web1也差不多):

version: '2' 
services:
    web:
        build: .
        ports:
          - "28080:8080"
        expose:
          - "8080"
        environment:
          - TALENTS_AUTH_HOST=192.168.20.111
          - TALENTS_AUTH_PORT=18080
          - TALENTS_ANALYSIS_HOST=192.168.20.111
          - TALENTS_ANALYSIS_PORT=18082
Run Code Online (Sandbox Code Playgroud)

这是 curl 的输出:

root@ea49393e56a4:/# curl -v http://192.168.20.111:28080
* Rebuilt URL to: http://192.168.20.111:28080/
*   Trying 192.168.20.111...
* TCP_NODELAY set
* connect to 192.168.20.111 port 28080 failed: Connection timed out
* Failed to connect …
Run Code Online (Sandbox Code Playgroud)

networking web docker

5
推荐指数
1
解决办法
4752
查看次数

标签 统计

docker ×1

networking ×1

web ×1