如果您的主机在容器网络模式下运行,容器的网络栈将不会与宿主机隔离,容器也不会获得自己的 IP 地址。例如,当一个绑定到主机端口 80 的容器使用该网络时,应用程序就可以通过宿主机的 IP 地址在端口 80 上进行访问。

注:在使用 host 网络模式时,容器没有独立的 IP 地址,因此端口映射不会生效,-p、–publish、-P、和 –publish-all 等选项也会被忽略,且会出现相应的警告:
WARNING: Published ports are discarded when using host network mode
使用主机网络模式可以提升性能,特别是在容器需要处理大量端口时,因为不再进行网络地址转换(NAT),也不会为每个端口创建“Userland-Proxy”。
主机网络驱动程序仅在 Linux 主机上可用,而在 macOS 的 Docker Desktop、Windows 的 Docker Desktop,或 Windows Server 的 Docker EE 上不支持该驱动。
通过在 docker service create 命令中指定 –network host,您还可以将该网络用于集群服务。在这种场景下,控制流量仍会通过覆盖网络发送,但单个集群服务容器会使用 Docker 守护进程的主机网络和端口来传输数据。这也带来了一些额外的限制。例如,如果某个服务容器绑定到端口 80,那么在同一群集节点上只能运行一个这样的服务容器。
