为什么当我使用“host.docker.internal”访问主机的本地主机时会出现“连接被拒绝”的情况?

为什么当我使用“host.docker.internal”访问主机的本地主机时会出现“连接被拒绝”的情况?

我有以下内容...

version: "3.9"
services:
  proxy:
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - UI_URL=http://host.docker.internal:8000
      - API_URL=http://host.docker.internal:4200
    restart: always
    build:
      context: ./proxy
      dockerfile: Dockerfile
    ports:
      - "443:443"
FROM nginx:alpine
WORKDIR /proxy
COPY nginx.conf /etc/nginx/conf.d/default.conf.template
COPY host.crt .
COPY host.key .
COPY pre-boot.sh .
ENTRYPOINT [ "/proxy/pre-boot.sh" ]
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 443

但是当我运行应用程序时,我无法在代理容器上访问它......

  1. 部署容器
  2. 进入主机上的终端
  3. 使用终端确认应用程序可以curl http://localhost:8000在主机上本地访问。它显示预期的 HTML
  4. 在代理容器中打开终端
  5. curl http://host.docker.internal:8000,但我得到了curl: (7) Failed to connect to host.docker.internal port 8000 after 2 ms: Connection refused

这是可行的,所以不确定可能发生了什么变化。有人知道为什么localhost可以工作但host.docker.internal在容器上会失败吗?我在 MacOs 上

相关内容