直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行 NAT 转换。
容器将不会获得一个独立的 Network Namespace, 而是和宿主机共用一个 Network Namespace。
容器将不会虚拟出自己的网卡而是使用宿主机的 IP 和端口。
案例
docker pull tomcat
docker run -d -p 8083:8080 --network host --name tomcat83 tomcat
问题:docke 启动时总是遇见标题中的警告
原因:docker 启动时指定--network=host 或 -net=host,如果还指定了 -p 映射端口,那这个时候就会有此警告,并且通过 -p 设置的参数将不会起到任何作用,端口号会以主机端口号为主,重复时则递增。
解决:解决的办法就是使用 docker 的其他网络模式,例如 --network=bridge,这样就可以解决问题。
docker stop tomcat83
docker rm tomcat83
docker run -d --network host --name tomcat83 tomcat
docker inspect tomact83 | tail -n 20
没有设置 -p 的端口映射了,如何访问启动的 tomcat83?
http://宿主机IP:8080/
在 CentOS 里面用默认的火狐浏览器访问容器内的 tomcat83 看到访问成功,因为此时容器的 IP 借用主机的,
所以容器共享宿主机网络IP,这样的好处是外部主机与容器可以直接通信。