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

无法连接到OS X上已发布的Docker端口,docker,Docker,我正在尝试在OS X最新更新10.12.5上的Docker 17.06容器中运行一个简单的Node.js/Express web应用程序。我无法连接到localhost:3000上的应用程序,也无法找出问题所在。我还尝试连接到虚拟机的IP地址,该地址是通过在其控制台中运行IP addr | grep global找到的,但没有成功 我的应用程序实际上只是JetBrains Webstorm在创建“Node.js Express app”类型的新项目时创建的框架。请注意,我可以通过npm star

我正在尝试在OS X最新更新10.12.5上的Docker 17.06容器中运行一个简单的Node.js/Express web应用程序。我无法连接到localhost:3000上的应用程序,也无法找出问题所在。我还尝试连接到虚拟机的IP地址,该地址是通过在其控制台中运行IP addr | grep global找到的,但没有成功

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

然后我创建了一个Docker图像,如下所示:

docker build -t joonas/meancopy .
运行它:

docker run -it -v `pwd`:/home/dev/src --name meancopy joonas/meancopy -p 3000:3000
在被抛出VM的shell之后,我运行npm start并获得以下结果:

[dev@c24d24f58f1d:~/src$ npm start
npm info it worked if it ends with ok
npm info using npm@5.0.3
npm info using node@v8.1.2
npm info lifecycle npmtest@0.0.0~prestart: npmtest@0.0.0
npm info lifecycle npmtest@0.0.0~start: npmtest@0.0.0

> npmtest@0.0.0 start /home/dev/src
> node ./bin/www
输出与在主机上运行时相同,除了开始时的npm信息行。但是,我无法在localhost:3000连接到此服务器

我也尝试过使用-expose=3000和-net=host运行映像,因为我在在线搜索解决方案时找到了这些映像,但它们没有帮助,据我所知,在这里甚至不需要它们

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

您的docker run命令不正确

docker run -it -v `pwd`:/home/dev/src --name meancopy joonas/meancopy -p 3000:3000
按照您编写的方式,容器将尝试并执行-p3000:3000作为容器的流程实例。您需要将-p参数放在图像名称之前

docker run -it -v `pwd`:/home/dev/src --name meancopy -p 3000:3000 joonas/meancopy
现在docker将运行Dockerfile中定义的命令,正如预期的那样,它可能是node.js应用程序