【问题标题】:Can't access Angular from outside of the container无法从容器外部访问 Angular
【发布时间】:2020-07-16 15:59:18
【问题描述】:

我在 docker 容器上运行 Angular,并尝试从本地网络浏览器访问它。
FROM node:9.11.1 as node MAINTAINER Tectonic RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app RUN npm install COPY . /usr/src/app EXPOSE 4200 CMD ["npm", "start"]

我使用:docker build -t act .

我使用:docker run -p 4200:4200 act

这曾经对我有用,但现在不行。我从 chrome 得到的错误是无法访问此站点 172.17.0.2 响应时间过长。。我试过去 localhost:4200、http://localhost:4200http://0.0.0.0:4200

我尝试过运行其他网络服务器,并且可以正常访问它们:docker run -p 80:80 --name webserver nginx

【问题讨论】:

  • 如果在运行命令中添加--network host会怎样?
  • 也没用
  • 你确定npm start默认在4200端口启动一个服务器吗?
  • 是的。如果我只是在本地而不是在容器中运行它,那么我可以毫无问题地访问它。

标签: docker angular5


【解决方案1】:

如果有人遇到这个问题,你可以运行:

ng 服务 --host 0.0.0.0 --port 4200

您将能够从主机访问您的应用程序。

【讨论】:

    【解决方案2】:

    是否需要允许所有带有 --host 标志的接口?

    npm start --host 0.0.0.0
    

    这允许所有接口都可以访问 Angular,而不仅仅是为在 docker 容器内提供必要的环回接口提供服务。

    【讨论】:

    • 没有帮助。虽然现在我得到“localhost没有发送任何数据。ERR_EMPTY_RESPONSE”
    猜你喜欢
    • 2019-09-03
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2022-09-24
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    相关资源
    最近更新 更多