我正在使用boot2docker并运行一个码头容器。我希望那个码头集装箱能和我的主人谈谈,他有一个开放的港口。我试过点击主机框,但它要通过virtualbox,所以这里似乎需要两层桥接,才能让端口进行对话。不知道该怎么做,即使有可能。
发布于 2015-07-10 02:11:11
其实你是对的,有两个层次:
宿主<-> boot2docker VM <->码头容器
因此,如果在运行容器时打开端口,则可以从boot2docker VM访问端口,但不能访问主机,除非进行端口转发。
以下是两种解决方案:
localhost进行访问
运行boot2docker ip,您将看到一个ip地址,如192.168.59.103,然后您可以通过192.168.59.103:port访问您的服务。boot2docker-vm,goto boot2docker-vm然后您可以添加自己的端口进行转发,例如,我希望通过localhost:10022访问ssh端口,只需添加一个新列,其中包含主机端口 10022和来宾端口 22。您可以查看这位医生以获得更多信息。如果您希望从容器访问主机端口,下面是一种简单的方法,只需将主机IP公开给停靠容器的host (如docker run --add-host vmhost:192.168.59.3 <docker_image> <command> ),注意192.168.59.3是默认的virtualbox主机专用适配器ip。然后,您可以按自己的意愿访问vmhost。
此外,您还可以管理您自己的网络桥来实现这一点,管道工程可能会帮助您。
https://stackoverflow.com/questions/31331270
复制相似问题