无法连接到OS X上发布的Docker端口

无法连接到OS X上发布的Docker端口

问题描述:

我试图在OS X(最新更新10.12.5)上的Docker(17.06)容器中运行简单的Node.js/Express网络应用程序。我无法连接到应用程序localhost:3000,我无法弄清楚什么是错的。我也试图通过在控制台上运行ip addr | grep global无法连接到虚拟机的IP地址。无法连接到OS X上发布的Docker端口

我的应用程序其实就是JetBrains Webstorm在创建类型为“Node.js Express App”的新项目时创建的框架。请注意,我可以通过npm start在我的主机系统上运行此应用程序,并成功连接到localhost:3000

我再建一个码头工人的图像,像这样:

docker build -t joonas/meancopy . 

运行:

docker run -it -v `pwd`:/home/dev/src --name meancopy joonas/meancopy -p 3000:3000 

而后被扔在虚拟机的外壳,我跑npm start,并得到如下:

[[email protected]:~/src$ npm start 
npm info it worked if it ends with ok 
npm info using [email protected] 
npm info using [email protected] 
npm info lifecycle [email protected]~prestart: [email protected] 
npm info lifecycle [email protected]~start: [email protected] 

> [email protected] start /home/dev/src 
> node ./bin/www 

输出结果与在主机上运行期望的开始时的“npm info”行相同nning。但是,我无法连接到此服务器localhost:3000

我也试过运行--expose=3000--net="host"的图片,因为我在网上搜索解决方案时发现了这些图片,但它们并没有帮助(而且我的理解在这里甚至都不需要)。

任何帮助或调试的想法,非常感谢!

docker run命令是坏

docker run -it -v `pwd`:/home/dev/src --name meancopy joonas/meancopy -p 3000:3000 

你有这样的表述方式,容器会尝试和执行-p 3000:3000作为容器的流程实例。您需要将-p参数放在之前的图像名称中。

docker run -it -v `pwd`:/home/dev/src --name meancopy -p 3000:3000 joonas/meancopy 

现在docker会运行你的Dockerfile中定义的命令 - 这可能是node.js应用程序,如预期的那样。