【问题标题】:Angular app container is not accessible from browser无法从浏览器访问 Angular 应用容器
【发布时间】:2020-03-13 09:07:23
【问题描述】:

尝试从 docker 文件 dockerize Angular 应用程序

泊坞窗文件

FROM node:12.2.0
WORKDIR /app
COPY package.json /app/package.json
RUN npm install
RUN npm install -g @angular/cli@6.0.8
COPY . /app
EXPOSE 4200
CMD ng serve --host 0.0.0.0

镜像构建成功

然后docker run test:latest 编译成功。现在的问题是 http://localhost:4200/ 不工作,换句话说,应用程序没有显示在浏览器中。

【问题讨论】:

  • 试试docker run -p 4200:4200 test:latest
  • 我已经这样做了docker run -p 4200:4201 test:latest,但无法访问,只是想知道为什么在附加相同的端口时它会起作用?
  • 是不是因为docker文件里有EXPOSE 4200这个命令?
  • 端口映射的模式是HOST:CONTAINER。在容器上,角度应用程序在 4200 而不是 4201 上运行。使用-p 4200:4201,您将容器的端口 4201(没有服务在那里运行)映射到主机的端口 4200。EXPOSE 指令更像是一个文档功能,通知其他人您的图像的服务正在运行在指定的端口上。
  • 注意:cmets是用来解释事情的,而不是用英文重写代码。您在这里拥有的 cmets 比坏还差——它们需要时间来维护,但没有任何价值。您不能争辩说它们是为非技术读者理解 dockerfile 的,因为不了解 dockerfiles 的人不会使用此代码,如果有的话,会有比这些更好的方法来了解正在发生的事情厘米。我已将它们从问题中删除,因为它们妨碍了代码的可读性。

标签: angular docker dockerfile


【解决方案1】:

您需要将端口从容器转发到您的系统/主机:

docker run -p 4200:4200 test:latest

【讨论】:

    猜你喜欢
    • 2022-12-04
    • 1970-01-01
    • 2019-05-04
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多