Mac主机上的Docker-machine的容器联系人应用程序

时间:2016-02-09 01:33:22

标签: nginx docker docker-machine

我有一台带有docker-machine的Mac笔记本电脑,在其他容器上运行带有nginx和其他几个应用程序的容器。我可以通过主机vm联系我的应用程序 - >通过nginx容器 - >进入app容器。

我想让应用程序联系我Mac上运行的另一个应用程序(用于调试)。这可能吗?

2 个答案:

答案 0 :(得分:0)

是的,有可能。一种简单的方法是使用--link选项

docker run -ti --link mysql:mysql <Docker_image>

注意:

根据@Matt的建议,您还可以使用最新的docker构建网络。

参考User-defined networks

答案 1 :(得分:0)

是的,您可以通过TCP / IP联系docker-machine VM主机上的服务。默认的docker虚拟机有两个连接到它们的网络接口。

适配器1

第一个网络适配器连接到NAT网络以进行Internet访问。这提供了通往笔记本电脑上主适配器地址的路径,通常为en0

→ ifconfig en0 | grep "inet "
    inet 192.168.10.33 netmask 0xffffff00 broadcast 192.168.10.255

您可以在docker VM或容器内使用此地址来访问Mac上运行的服务。

docker@default-docker:~$ curl http://192.168.10.33:3000/time
{"time":{"now":1454987348431,"start":1454635891001}}

适配器2

还有第二个仅限主机的适配器用于docker管理。 VirtualBox中仅主机适配器的名称将映射到主机上的接口。

→ VBoxManage showvminfo default | grep "NIC 2"
NIC 2:           MAC: 0800270D841E, Attachment: Host-only Interface 'vboxnet3', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none

你的mac将有一个相应的界面

→ ifconfig vboxnet3
vboxnet3: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 0a:00:27:00:00:03 
    inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255

您也可以使用此地址。

docker@default-docker:~$ curl http://192.168.99.1:3000/time
{"time":{"now":1454987348590,"start":1454635891001}}

如果您的网络IP发生变化并且您需要在容器中配置静态内容,主机适配器地址'将保持一致(除非您销毁您的虚拟机,然后它可能会更改)

相关问题