Docker容器:容器之间卷曲不起作用

时间:2016-09-09 22:01:52

标签: curl networking docker ports

我在同一个网络中有多个docker容器。我试图在containerA上使用curl从test01.docker容器上的API获取结果。

我在容器A上运行此命令:

curl -s test-01.docker:8031/app?status -v

输出如下:

* Hostname was NOT found in DNS cache
*   Trying 172.19.0.24...
* connect to 172.19.0.24 port 8031 failed: Connection refused
* Failed to connect to test-01.docker port 8031: Connection refused
* Closing connection 0

当我尝试使用以下命令从containerA ping test01.docker时:

ping test-01.docker

很成功。

当我做docker ps时,它会显示以下信息。在我的

43823212be7e        mytestimage        "/docker-entrypoint.s"   53 seconds ago       Up 47 seconds       22/tcp, 2812/tcp, 5060-5061/tcp, 6970-6971/tcp, 8002/tcp, 8030-8031/tcp, 8033/tcp, 8071/tcp, 8888/tcp, 9020-9023/tcp   containerA

这表明端口8031已暴露。我无法弄清楚为什么curl会失败。当我在test-01.docker上运行以下命令时,它给出了正确的输出:

curl -s localhost:8031/app?status

不确定为什么它不在同一网络中的其他容器中工作。请告诉我,我是否遗漏了什么。

更新:我的docker-compose文件如下所示:

  version: '2'

  services:
    test-01.docker:
      image: ##############
      expose:
        - 22
        - 2812
        - 8031
      hostname: test-01
      domainname: docker

1 个答案:

答案 0 :(得分:0)

似乎在test-01.docker中运行的应用程序侦听127.0.0.1,因此该容器外的任何其他程序都无法访问它

让你的应用程序(在test-01.docker中)监听0.0.0.0地址并再次尝试