Docker-compose容器端口无法正常工作

Phi*_*ide 1 docker docker-compose

我正在运行一个由docker-container启动的容器,如下所示:

  puppetboard:
    build: ./images/puppetboard
    image: puppet/puppetboard
    ports:
      - 5000:5000
    links:
      - puppetdb:puppetdb
Run Code Online (Sandbox Code Playgroud)

它成功构建,当我运行时,docker ps我可以看到:

0.0.0.0:5000->5000/tcp
Run Code Online (Sandbox Code Playgroud)

我甚至可以使用docker execcurl localhost:5000返回一个html页面进入容器.

我仔细检查主机是否可以在127.0.0.2 (docker network)上看到端口5000 ,nmap 127.0.0.2并且端口可用:5000/tcp open upnp.

然而,当我127.0.0.2:5000在主机上的浏览器中,我得到的网站不可用.如何调试此网络问题?

curl 127.0.0.2:5000&的结果curl 127.0.0.1:5000是:curl: (56) Recv failure: Connection reset by peer.

BMi*_*tch 6

127.0.0.x是一个环回地址.要将容器中的端口发布到主机,您需要侦听容器中的所有接口.因此,您需要确保容器内的应用程序配置为侦听0.0.0.0:5000(这与在docker compose文件中发布端口的选项不同).


pap*_*pey 6

正如我们在这个房间讨论的那样,您必须确保容器化应用程序侦听容器内的所有接口。在木偶板的情况下,配置看起来像:

DEV_LISTEN_HOST = '0.0.0.0' 
Run Code Online (Sandbox Code Playgroud)

0.0.0.0 用于表示“所有接口”