Expose端口在docker中不起作用

时间:2018-05-08 22:12:11

标签: angularjs docker dockerfile

我有这个图片

docker run -it -v `pwd`:/ng_app -d -p 4200:4200 --name ang_cli ang_cli

我用

运行它
** Angular Live Development Server is listening on localhost: 4200, open your browser on http://localhost:4200/ **
 3
Date: 2018-05-08T21:47:18.204Z
Hash: 993ee08f65694a2dd3c9
Time: 10559ms
chunk {main} main.js, main.js.map (main) 10.6 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 227 kB 
[initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 5.4 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 15.6 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 3.37 MB [initial] [rendered]
ℹ 「wdm」: Compiled successfully.

日志就是这个

ng new jwt-auth

但是localhost:4200 没有显示任何内容

我使用--expose --net host

创建了一个空应用

我已经尝试了

{{1}}

但没有运气。

1 个答案:

答案 0 :(得分:3)

问题应该在这里:

** Angular Live Development Server is listening on localhost: 4200

这是容器的localhost,因此端口4200对于docker主机以及使用映射的4200的任何其他计算机都不可用。

您应该使用0.0.0.0绑定运行ng:

ng serve --host 0.0.0.0

并且映射应该有效。