我正在遵循Docker网络教程here和here中提到的步骤。
HostOS:MacOS Docker
版本:18.03.1-ce-mac65(24312)
docker run -dit --name alpine1 alpine ash
在前一个链接中提到
主机的IP地址正在更改(如果您没有网络,则没有IP地址) 访问)。从18.03开始,我们的建议是连接到 特殊的DNS名称host.docker.internal,解析为内部 主机使用的IP地址。这是出于发展目的,将 在Docker for Mac以外的生产环境中无法使用。
因此,从alpine1容器中:
/ # ping -c 1 host.docker.internal
PING host.docker.internal (192.168.65.2): 56 data bytes
64 bytes from 192.168.65.2: seq=0 ttl=37 time=0.285 ms
--- host.docker.internal ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.285/0.285/0.285 ms
您可以看到host.docker.internal解析为192.168.65.2
我以为192.168.65.2必须是我的主机IP,但是当时不是我对主机IP执行ping操作(通过在主机OS上执行ifconfig
),然后对来自alpine1的主机OS IP执行了ping操作容器,这是输出:
ping -c 1 192.168.86.81 PING 192.168.86.81(192.168.86.81):56个数据 字节从192.168.86.81开始的64字节:seq = 0 ttl = 37 time = 0.869 ms
--- 192.168.86.81 ping统计信息---传输1个数据包,接收1个数据包,0%数据包丢失往返min / avg / max = 0.869 / 0.869 / 0.869 ms
为 host.docker.internal 解析的IP(192.168.65.2)是什么?
host.docker.internal 到底是什么?