Docker访问端口在主机上运行

时间:2015-07-10 01:58:44

标签: docker boot2docker

我正在使用boot2docker并且正在运行一个docker容器。我希望这个docker容器能够与拥有开放端口的主机通话。我试过点击主机盒,但它通过虚拟机盒,因此似乎需要有两个级别的桥接才能让端口通话。不知道该怎么做,或者即使它可能。

1 个答案:

答案 0 :(得分:2)

其实你是对的,有两个级别:

主机< - > boot2docker VM< - >泊坞容器

因此,如果在运行容器时打开端口,则可以从boot2docker VM访问该端口,但不能访问主机,除非您进行端口转发。

以下是两个解决方案:

  • 使用boot2docker VM的ip进行访问,但不是localhost 运行boot2docker ip,您会看到192.168.59.103等IP地址,然后您可以通过192.168.59.103:port

  • 访问您的服务
  • 进行端口转发 打开VirtualBox应用程序,选择虚拟机boot2docker-vm,转到Settings - > Network - > Advanced - > Port Forwarding。然后你可以添加自己的转发端口,例如,我想通过localhost:10022访问我的ssh端口,只需添加一个新列,其中主机端口 10022和客人港口 22。 您可以查看this doc以获取更多信息。

如果你想从容器访问主机端口,这是一个简单的方法,只需将你的主机ip暴露给docker容器的host,如docker run --add-host vmhost:192.168.59.3 <docker_image> <command>,请注意192.168.59.3是默认的虚拟框仅托管适配器IP。然后,您可以根据需要访问vmhost

此外,您可以管理自己的网桥,pipework可以为您提供帮助。