无法到达 Docker 容器中的 angular 运行

Unable to reach angular running in Docker container

我是 Docker 的新手,请多多包涵。

Docker文件:

FROM node:alpine
WORKDIR '/app'
COPY ./package.json .
EXPOSE 4200
RUN npm i
COPY . .
CMD ["npm","start"]

命令:

docker build -t angu .
docker run  -p 4300:4200 angu

我不确定是否需要在 Docker 文件中包含 EXPOSE 4200。但这两种方式都行不通。

容器内的服务器正在侦听本地主机,这与您计算机上的本地主机不同。容器有自己的本地主机。

要更改应用程序以侦听外部流量,您需要将 --host 0.0.0.0 添加到 package.jsonnpm start 脚本中的 ng serve 命令,如下所示:

"start": "ng server --host 0.0.0.0"

您不需要在您的 Dockerfile 中添加 EXPOSE,因为它实际上并没有做太多,它主要用于文档目的。您已经使用 --p 发布端口。您可以在 this article

中阅读更多相关信息