假设我在OSX上的端口8000上运行了服务器。我的Docker容器如何通过--net="host"
访问它?我也无法更改主机名,因为容器中的应用程序不在我的控制范围内。
我已经阅读了之前关于使用--net="host"
容器访问主机网络的讨论。但是,我在OSX上运行并且Docker在VM内部运行,因此来自Docker容器的 localhost VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";
将转到VM而不是我的真实机器。
然后我尝试了port forwarding workaround,{{1}}无效。
任何建议都将不胜感激。
答案 0 :(得分:46)
感谢palimpestor的答案我明白了:
使用--net="host"
--add-host="localhost:10.0.2.2"
事实上:
--add-host...
正在/ etc / hosts中添加localhost 10.0.2.2
reference)注意:您需要在boot2docker VM VirtualBox设置中设置NAT适配器(我是通过GUI完成的,不知道CLI)。
答案 1 :(得分:14)
请尝试使用--net="host"
,而不是--add-host="localhost:192.168.59.3"
,
1。
答案 2 :(得分:1)
如果我理解您的意图,那就是:从容器连接到主机端口
从18.3开始,码头工人团队已经为我们覆盖:
使用别名host.docker.internal
我想从主机连接到主机上的服务 主机的IP地址正在更改(如果没有网络访问权限,则没有IP地址)。从18.03开始,我们建议连接到特殊的DNS名称
host.docker.internal
,该名称解析为主机使用的内部IP地址。这是出于开发目的,不适用于Windows的Docker Desktop以外的生产环境。网关也可以通过
gateway.docker.internal
访问。