docker 第10.4章 Docker网络-host docker 第10.4章 Docker网络-host

2023-06-11

直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行 NAT 转换。

容器将不会获得一个独立的 Network Namespace, 而是和宿主机共用一个 Network Namespace。

容器将不会虚拟出自己的网卡而是使用宿主机的 IP 和端口。

https://file.lulublog.cn/images/3/2023/06/Ie4w35V85xvxp3CA2z8LJvlE1525qL.jpg

案例

docker pull tomcat
docker run -d -p 8083:8080 --network host --name tomcat83 tomcat

https://file.lulublog.cn/images/3/2023/06/JKOk4FRHr89J0IJnkFDiDZkR8Z0Ojn.jpg

问题: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

https://file.lulublog.cn/images/3/2023/06/NYEYUyyMZjB8I88oC64mkYv6UUyi68.jpg

没有设置 -p 的端口映射了,如何访问启动的 tomcat83?

http://宿主机IP:8080/

在 CentOS 里面用默认的火狐浏览器访问容器内的 tomcat83 看到访问成功,因为此时容器的 IP 借用主机的,

所以容器共享宿主机网络IP,这样的好处是外部主机与容器可以直接通信。

阅读 365

docker文章

带到手机上看