如何从mac中的docker容器外部访问?

时间:2016-03-07 16:12:29

标签: macos docker

我有一个在mac中的默认vm中运行的docker容器,我已经将我的特定应用程序的端口映射到vm的端口。完成后我可以通过以下方式访问我的应用程序:

curl $(docker-machine ip default):9003

之后我通过这种方式进行端口转发,将我的vm端口映射到我的localhost:

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

一旦我这样做了,我就从我的localhost获得了我的应用程序的响应

curl localhost:9003

我的问题是:如何从外部世界甚至从我自己的网络访问此应用程序?我试过用我的mac打开一个端口:

pass in inet proto tcp from any to any port 9003

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

1 个答案:

答案 0 :(得分:0)

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

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

等待@ marc-b的回答,他先给了它。