
[英]Access the IP from a docker container on a bridge network on mac osx with docker-compose
[英]Unable to access local network IP from docker container
在其上运行macOS和docker ubuntu,我无法ping我本地网络的IP地址。 以下是我的docker容器的网络配置。 我可以ping我的主机的IP地址,但我无法访问本地网络上的其他IP地址。
root# ping 172.17.101.192
PING 172.17.101.192 (172.17.101.192) 56(84) bytes of data.
From 172.17.0.3 icmp_seq=1 Destination Host Unreachable
From 172.17.0.3 icmp_seq=2 Destination Host Unreachable
root# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:03
inet addr:172.17.0.3 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:3/64 Scope:Link
是否有任何网络配置可以帮助我执行此操作?
我试过net=host
但它没有帮助它。
我使用docker for mac,问题是docker内部网络与我的本地网络寻址冲突。 要解决这个问题,我需要去Preferences
在dokcer菜单。 在首选项菜单Daemon>Advanced Menu
,我可以提供其他双向。
{
"bip" : "12.12.0.1/24"
}
单击应用并重新启动。 下一次12.12.0.1/24
将以内部网络12.12.0.1/24
。
我尝试了以下,它的工作原理:
mac-os $> ifconfig
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 78:31:c1:bd:4b:84
inet6 fe80::1425:a90d:9c00:ef53%en0 prefixlen 64 secured scopeid 0x4
inet 10.191.41.1 netmask 0xfffff800 broadcast 10.191.47.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
所以我的IP是10.191.41.1 。 然后我做:
mac-os $> docker run -ti --rm ubuntu bash -c "apt-get update && apt-get install -y inetutils-ping && ping 10.191.41.1"
其中安装了“ping”命令,并尝试ping我的主机。 我得到了正确的答案:
[...]
PING 10.191.41.1 (10.191.41.1): 56 data bytes
64 bytes from 10.191.41.1: icmp_seq=0 ttl=37 time=0.303 ms
64 bytes from 10.191.41.1: icmp_seq=1 ttl=37 time=0.536 ms
[...]
我猜你正在使用码头机。
你应该检查docker for mac,因为它有一些网络改进 ,可能会使你的工作。 这就是我正在使用的,我能够从docker到达我内部网络上的其他主机。
我认为docker内部网络可能与您的本地网络寻址冲突。
尝试运行Docker将默认内部网络更改为不冲突的内容,如172.31.0.0/24。 添加到您的Docker启动选项--bip 172.31.0.1/24
,可能位于/etc/default/docker
:
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--bip 172.31.0.1/24"
更新:虽然在Linux中也是如此,但Mac实现方式不同,请参阅此处的文档,因此,这取决于您使用的是Docker for Mac还是Linux。
只是为了测试,尝试将您的笔记本电脑连接到不同的网络,192.168.0.0/16范围内的任何一个都足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.