容器之间如何通信?容器如何暴露服务给外部?Docker 网络是容器化部署中不可忽视的一环。本章将深入解析 Docker 的网络模型、常见网络类型及其应用场景,帮助你构建更稳定、可控的容器网络环境。
Docker 提供了多种网络驱动,满足不同场景下的容器通信需求:
bridge 的虚拟网桥docker network inspect bridge 查看网络详情示例:
bashdocker run -d --name web1 nginx
docker run -d --name web2 nginx
docker exec -it web1 ping web2
示例:
bashdocker run --network host nginx
注意:仅适用于 Linux,Docker Desktop 的 host 网络行为不同。
创建步骤:
bashdocker swarm init docker network create -d overlay my_overlay docker service create --name web --network my_overlay nginx
docker network create 创建隔离网络示例:
bashdocker network create my_net docker run -d --name db --network my_net postgres docker run -d --name app --network my_net myapp
在 app 容器中可通过 db:5432 访问数据库。
-p 参数将容器端口映射到宿主机localhost:端口 访问容器服务示例:
bashdocker run -d -p 8080:80 nginx
Docker 网络模型为容器提供了灵活的通信机制
掌握不同网络类型的原理与应用场景,不仅能提升服务稳定性,也能为后续的集群部署与安全策略打下坚实基础


本文作者:AsZero
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!