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

Why container can't request to another?

我无法将 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而不是url http://widget-ws:10084 但有错误 connect ECONNREFUSED 172.21.0.2:10084

使用url:http://widget-ws:3001

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

不需要创建网络。

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

容器使用的网络类型,无论是网桥、覆盖网络、macvlan 网络还是自定义网络插件,在容器内部都是透明的。所以使用容器端口而不是使用外部绑定端口。

http://widget-ws:3001