为什么容器不能请求另一个容器?

时间:2019-04-04 19:04:56

标签: docker docker-compose docker-networking

我无法将http查询从容器发送到另一个

我已经尝试创建网络,但没有帮助

version: '2'
services:
 backend:
    container_name: backend
    image: registry.gitlab.com/myproject/backend:latest
    restart: always
    ports:
      - 10083:3000
    networks:
      - dpnet
 widget-ws:
    container_name: widget-ws
    image: registry.gitlab.com/myproject/widget-ws:latest
    restart: always
    ports:
      - 10084:3001
    networks:
      - dpnet
networks:
  dpnet:
    driver: bridge

我使用container_name指示的网址 http://widget-ws:10084 但是有错误 connect ECONNREFUSED 172.21.0.2:10084

3 个答案:

答案 0 :(得分:0)

使用网址:http://widget-ws:3001

容器在内部端口上相互交谈,而不是在映射到主机的端口上相互交谈。

不必创建网络。

答案 1 :(得分:0)

似乎您正在将内部IP与打开的主机端口混合在一起。将http://widget-ws:10084替换为http://widget-ws:3001,您的连接应该可以正常工作。

答案 2 :(得分:0)

容器使用的网络类型(无论是网桥,覆盖图,macvlan网络还是自定义网络插件)在容器内部都是透明的。因此,请使用容器端口,而不要使用外部绑定端口。

http://widget-ws:3001