在其上运行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
,但它没有帮助它。
答案 0 :(得分:9)
我正在使用docker for mac,问题是docker内部网络与我的本地网络寻址冲突。
要解决此问题,我需要转到dokcer菜单中的Preferences
。
在首选项菜单Daemon>Advanced Menu
中,我可以提供其他双击。
{
"bip" : "12.12.0.1/24"
}
单击“应用”并重新启动。下次docker将以内部网络12.12.0.1/24
开始。
答案 1 :(得分:2)
我尝试了以下内容,它确实有效:
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"
安装&#34; ping&#34;命令,并尝试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
[...]
答案 2 :(得分:2)
我猜你正在使用泊坞机。
您应该查看docker for mac,因为它有一些networking improvements可能会让您的工作正常。这就是我正在使用的,我可以通过docker到达我内部网络上的其他主机。
答案 3 :(得分:2)
我认为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实现方式不同,请参阅文档here,因此,这取决于您使用的是Docker for Mac还是Linux。
只是为了测试,尝试将笔记本电脑连接到不同的网络,192.168.0.0/16范围内的任何一个都足够了。