在主机上运行的Docker访问端口

我正在使用boot2docker,正在运行一个docker容器。 我希望这个docker集装箱能够和我的主人开放通话。 我试过打主机箱,但它通过virtualbox,所以它似乎需要有两个桥接这里的水平,以获得端口谈话。 不知道该怎么做,或者即使有可能。

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

主机< – > boot2docker VM < – >泊坞窗容器

所以如果您在运行容器时打开一个端口,则可以从boot2docker虚拟机访问端口,但不能访问主机,除非您进行端口转发。

这里有两个解决scheme:

  • 访问使用boot2docker虚拟机的IP,但不是localhost
    运行boot2docker ip ,你会看到一个如192.168.59.103的IP地址,那么你可以通过192.168.59.103:port访问你的服务

  • 做一个端口转发打开你的VirtualBox应用程序,select虚拟机即boot2docker-vm ,转到Settings – > Network – > Advanced – > Port Forwarding 。 然后你可以添加自己的端口来转发,例如,我想通过localhost:10022访问我的ssh端口,只需添加一个新的列, 主机端口 10022和访客端口 22.你可以查看这个文档的更多信息。

如果你想从容器访问主机端口,这里是一个简单的方法,只是暴露你的主机IP到docker容器的host ,像docker run --add-host vmhost:192.168.59.3 <docker_image> <command> ,请注意, 192.168.59.3是默认的仅限virtualbox主机的适配器IP。 然后你可以随意访问vmhost

此外,您可以pipe理自己的网桥来做到这一点, pipe道可以帮助你。