无法从Docker容器访问angular2应用

Bhu*_*kar 0 docker docker-machine angular-cli angular

我使用官方节点映像创建了一个Docker容器。

docker pull node
Run Code Online (Sandbox Code Playgroud)

然后我使用angular-cli创建了一个angular 2应用。

ng new docker-demo
Run Code Online (Sandbox Code Playgroud)

然后我使用以下命令从我的angular2应用程序的目录中运行我的docker容器:

cd docker-demo
Run Code Online (Sandbox Code Playgroud)

&然后在目录中:

docker run -p 8080:4200 -v $(pwd):/var/www -w "/var/www" node npm start
Run Code Online (Sandbox Code Playgroud)

其中pwd代表我的angular2应用程序的目录。

现在,在控制台中,我可以看到我的angular2应用程序已捆绑并正在运行,就像它在本地计算机上运行一样。

但是当我尝试使用docker-machine的ip从浏览器访问它时:

http://192.168.99.100:8080/
Run Code Online (Sandbox Code Playgroud)

它不起作用。

PS:angular2应用程序在我的本地系统上运行良好。

是否需要任何额外的配置?

有输入吗?

提前致谢。

Hen*_*ves 6

我有一个类似的问题。能够使用它ng serve --host 0.0.0.0作为我的容器的启动命令来修复它。重要的是要记住在构建时公开正确的端口。确保使用EXPOSE 4200或要在Dockerfile中公开应用的任何其他端口。Angular2 / 4应用程序默认使用4200,因此大多数时间是最佳选择。

如果您使用的是Docker compose,那也是一样。记住要公开端口并在ng serve命令中使用适当的参数。希望它能帮助您和其他遇到同样问题的队长。