2016-03-07 85 views
0

我有一个docker容器在mac中默认的vm中运行,我已经将我的特定应用程序的端口映射到vm的端口。有一次,我已经做了我可以通过做访问我的应用程序:如何从mac的Docker容器外部访问?

curl $(docker-machine ip default):9003 

之后,我已经做端口转发这种方式映射我的虚拟机移植到我的本地主机:

VBoxManage controlvm default natpf1 "9003,tcp,127.0.0.1,9003,,9003" 

一旦我已经做了,我让我的应用从我的本地主机的响应

curl localhost:9003 

我的问题是:如何才能获得来自外界,甚至从我自己的网络此应用程序?我已经尝试在我的mac中打开一个端口:

pass in inet proto tcp from any to any port 9003 

但仍然显示端口与nmap关闭。有谁知道我错过了什么?

+0

你只绑定本地主机(127.0.0.1)。你需要绑定到你的虚拟机的“走出去”IP地址。 –

+0

伟大完全错过了它,作为回复发布它,我会接受它 – colom

+0

你可以在这里找到解决方案:https://stackoverflow.com/questions/44384542/how-can-i-map-a-shared-folder-从-我的容器上-MAC/44529789#44529789 – Dan

回答

0

如果使用docker-run选项--net=host,则可以将套接字绑定到本地主机,因此本地堆栈以及NIC将在主机和容器之间共享。

OTOH,如果使用docker-run选项-p,则如果套接字绑定到本地主机IP地址,则无法从容器外访问该服务。


等待@ marc-b的回答,不过,他给了它第一个。

相关问题