使用“container ip”连接到docker容器

时间:2016-08-10 11:34:57

标签: apache-spark docker

我在mac上运行docker。我想使用它的ip(而不是虚拟盒机器的ip)连接到docker容器。原因是spark驱动程序使用容器ip“172.17.0.2”注册,并且从mac运行的客户端尝试连接到此地址。有没有办法从ipbook 192.168.99.1连接到172.17.0.2。

ravis-MacBook-Pro:datadir raviramadoss$ ifconfig | grep inet
    inet6 ::1 prefixlen 128
    inet 127.0.0.1 netmask 0xff000000
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet6 fe80::22c9:d0ff:fec3:ab3b%en1 prefixlen 64 scopeid 0x5
    inet 172.20.10.2 netmask 0xfffffff0 broadcast 172.20.10.15
    inet6 fe80::2c59:11ff:fe77:f5a6%awdl0 prefixlen 64 scopeid 0x9
    inet6 fe80::8f9:68c0:9430:41eb%utun0 prefixlen 64 scopeid 0xb
    inet6 fdd6:aa86:393a:d244:8f9:68c0:9430:41eb prefixlen 64
    inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255
    inet6 fe80::4fc0:193a:6763:2e97%utun1 prefixlen 64 scooped 0x14

虚拟框ip

ravis-MacBook-Pro:sbin raviramadoss$ docker-machine ip
192.168.99.100

容器

[raviramadoss@karaba logs]$ ifconfig | grep inet
          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host

感谢任何帮助。 谢谢 Ravi R

2 个答案:

答案 0 :(得分:1)

看看Docker Networks。您在Container中看到的IP是Docker网络之外的私有IP。

访问容器的publish a port并通过VM-IP访问容器的唯一(好)方法:published-container-port。或者,您可以使用选项--net=host直接使用docker hosts netwok接口,但不建议这样做。

答案 1 :(得分:0)

您使用的是哪个Docker应用?使用Docker for Mac beta的AFAIK你现在不能这样做:

  

不幸的是,由于OSX的限制,我们无法路由流量   到容器,从容器回到主机。

如果您希望行为与“本机”Docker更加一致,您可能需要探索Vagrant主机或类似解决方案。