docker容器之间的连接

时间:2015-04-23 15:30:14

标签: connection localhost docker port docker-compose

  1. 我有一个docker-compose.yml,我创建了2个容器:A和B.
  2. B是在端口8000和我的docker-compose文件中运行的Web服务器 我暴露了端口8000
  3. A在我的docker-compose-file中有一个指向B的链接。
  4. 但是当我在B上发出GET请求时,我收到了一个错误:

    GET http://localhost:8000 dial tcp 127.0.0.1:8000 refused
    

    我该如何解决?

    docker-compose ps告诉我 8000 / tcp

    的端口

1 个答案:

答案 0 :(得分:3)

你能告诉我们你的docker-compose.yml文件吗?用于两个容器之间链接的名称实际上创建了一个要连接的别名,就像localhost127.0.0.1的别名一样:https://docs.docker.com/compose/yml/#links

因此,您不应在GET请求中通过localhost进行连接。而是使用服务B的链接中使用的名称,以及后面的端口。以下是带有相应GET请求URL的示例配置文件:

<强>搬运工-compose.yml:

service_a:
    image: service_a_image
    ports:
        - 7000 # maps port to host
    links:
        - service_b
service_b:
    image: serivce_b_image
    expose:
        - 8000 # exposes port to other containers

从服务A获取网址到B:

http://service_b:8000

希望这有帮助!