我为我的角度应用程序编写了以下docker文件。
version: '3'
services:
applicationui:
image: applicationui
build: /
network_mode: host
container_name: angular-container
ports:
- 4200:4100
Docker镜像已成功创建。 在我写的docker-compose.yml文件中:
Movement
在执行docker-compose up后,当我使用localhost:4200访问浏览器时,页面无法打开。
答案 0 :(得分:1)
您没有在Dockerfile中覆盖Nginx配置,因此端口的实际问题是默认情况下监听EXPOSE 80
的Nginx。因此,请更改裸露的端口。
80
默认情况下,作为Nginx监听端口4100
,而不是像期望的Nginx那样监听端口80
,就像Angular ng serve等。
最好使用Expose 80
,因为它会提高可读性,因为@David提到如果设置network_mode:host不会产生任何作用。
因此,用 ports:
- 4200:80
打开浏览器,它应该可以工作。
或者您可以绑定所需的端口,而无需在docker-compose中提及主机网络
{{1}}
答案 1 :(得分:0)
ports:
, network_mode: host
无效。此设置经常被作为解决Docker网络问题的一种解决方法,因此在这里不需要。只需删除该行。 (您也可以安全地删除container_name:
和image:
,而不会造成不良影响。)