Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
主机上运行的Docker访问端口_Docker_Boot2docker - Fatal编程技术网

主机上运行的Docker访问端口

主机上运行的Docker访问端口,docker,boot2docker,Docker,Boot2docker,我正在使用boot2docker并运行docker容器。我希望docker容器能够与具有开放端口的主机对话。我试着点击主机盒,但它要通过virtualbox,所以这里似乎需要两个级别的桥接才能让端口通信。不知道如何做到这一点,甚至不知道这是否可能。事实上你是对的,有两个级别: 主机boot2docker虚拟机docker容器 因此,如果在运行容器时打开端口,则可以从boot2docker VM而不是主机访问该端口,除非进行端口转发 这里有两种解决方案: 使用boot2docker VM的ip而

我正在使用boot2docker并运行docker容器。我希望docker容器能够与具有开放端口的主机对话。我试着点击主机盒,但它要通过virtualbox,所以这里似乎需要两个级别的桥接才能让端口通信。不知道如何做到这一点,甚至不知道这是否可能。

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

主机boot2docker虚拟机docker容器

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

这里有两种解决方案:

  • 使用boot2docker VM的ip而不是本地主机进行访问 运行
    boot2dockerip
    ,您将看到一个ip地址,如
    192.168.59.103
    ,然后您可以通过
    192.168.59.103:port

  • 进行端口转发 打开您的VirtualBox应用程序,选择虚拟机即
    boot2docker-vm
    ,转到
    设置
    ->
    网络
    ->
    高级
    ->
    端口转发
    。然后,您可以添加自己的转发端口,例如,我想通过
    localhost:10022
    访问我的ssh端口,只需添加一个带有host port10022和guest port22的新列即可。 你可以查看更多信息

如果您想从容器访问主机端口,这里有一个简单的方法,只需将您的主机ip暴露给docker容器的
主机
,如
docker run——添加主机vmhost:192.168.59.3
,请注意
192.168.59.3
是默认的virtualbox纯主机适配器ip。然后,您可以根据需要访问
vmhost


此外,您可以管理自己的网桥来实现这一点,这可能会对您有所帮助。

@Freezenet,反过来呢?主机的端口9160已打开,我希望docker容器能够访问该端口。这一切似乎都指向访问已打开docker端口的主机,而不是相反?