我正在按照Docker网络教程herehere中提到的步骤进行操作 .

HostOS:MacOS Docker
版本:18.03.1-ce-mac65(24312)

docker run -dit --name alpine1 alpine ash

在前一个链接中提到过

主机具有更改的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,但当时我没有ping主机IP(在主机操作系统上执行 ifconfig )然后执行ping来从alpine1容器托管OS IP,这是输出:

ping -c 1 192.168.86.81 PING 192.168.86.81(192.168.86.81):56个数据字节64个字节来自192.168.86.81:seq = 0 ttl = 37 time = 0.869 ms --- 192.168.86.81 ping statistics --- 1发送数据包,收到1个数据包,0%数据包丢失往返最小值/平均值/最大值= 0.869 / 0.869 / 0.869毫秒

什么是为 host.docker.internal 解决的IP(192.168.65.2)?

什么是 host.docker.internal 究竟是什么?