如果容器使用'host'网络驱动,意味着容器共享宿主机网络栈,双方在网络名称空间并没有隔离。例如,如果容器绑定到‘host’网络的80端口,则可通过宿主机IP加上80端口访问容器。

'host'类型网络驱动只在Linux操作系统主机上可用,不支持Mac、Windows。

从Docker 17.06开始,支持Docker Swarm中服务使用host网络,在docker container create命令创建容器时增加--network host即可。控制流量(swarm集群与服务管理流量)仍然使用overlay网络,但是单独swarm服务通过Docker守护进程使用的宿主机网络与端口号发送流量。这增加了一些额外的限制。例如,如果服务容器绑定到宿主机的80端口,显而易见的是,在这个swarm集群中的宿主机上只能运行一个实例。

如果容器服务不对外开放端口,则'host'网络不会产生其它影响。总之,在正式应用中,不应该使用host网络,严重依赖宿主机。

原文:https://docs.docker.com/network/host/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐