- 工信部备案号 滇ICP备05000110号-1
- 滇公网安备53011102001527号
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
- CN域名投诉举报处理平台:电话:010-58813000、邮箱:service@cnnic.cn
欢迎来到8455线路检测中心技术小课堂,每天分享一个技术小知识。
Docker 网络是容器化架构中至关重要的组件,它决定了容器如何与外部世界及其他容器通信。掌握 Docker 网络配置对于构建安全、高效的容器化应用至关重要。本文将深入介绍 Docker 的主要网络模式、配置方法和实际应用场景。
# 列出所有网络
docker network ls
# 查看网络详细信息
docker network inspect bridge
# 查看容器网络配置
docker inspect 容器名 --format='{{json .NetworkSettings.Networks}}' | jq .
Docker 提供五种主要网络模式:
1. bridge:默认网络模式,容器通过虚拟网桥连接
2. host:容器直接使用宿主机网络栈
3. none:无网络连接,完全隔离
4. container:共享另一个容器的网络命名空间
5. 自定义网络:用户定义的桥接或覆盖网络
# 运行容器使用默认桥接网络
docker run -d --name web1 nginx:latest
docker run -d --name web2 nginx:latest
# 查看网络配置
docker network inspect bridge
# 测试容器间通信(通过IP)
docker exec web1 ping $(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web2)
# 创建自定义桥接网络
docker network create --driver bridge my_bridge
# 配置桥接参数
docker network create \\
--driver bridge \\
--subnet=172.20.0.0/16 \\
--ip-range=172.20.5.0/24 \\
--gateway=172.20.5.254 \\
custom_bridge
# 运行容器加入自定义网络
docker run -d --name app1 --network my_bridge myapp:latest
docker run -d --name app2 --network my_bridge myapp:latest
# 容器间可以直接通过容器名通信
docker exec app1 ping app2
# 运行容器使用主机网络
docker run -d --name nginx_host --network host nginx:latest
# 验证网络模式
docker inspect nginx_host --format='{{.HostConfig.NetworkMode}}'
# 在宿主机查看端口
ss -tuln | grep :80
优势:
· 性能最佳,无网络转换开销
· 容器直接使用宿主机IP
限制:
· 端口冲突风险
· 安全风险较高
· 无法在同一宿主机运行多个使用相同端口的容器
# 运行无网络容器
docker run -d --name isolated --network none alpine sleep 3600
# 验证无网络
docker exec isolated ip addr
docker exec isolated ping 8.8.8.8 # 应该失败
应用场景:
· 需要完全网络隔离的安全敏感应用
· 仅处理本地文件的批处理任务
# 运行第一个容器
docker run -d --name web_base nginx:latest
# 运行第二个容器共享第一个容器的网络
docker run -d --name web_shared --network container:web_base myapp:latest
# 验证网络共享
docker inspect web_shared --format='{{.HostConfig.NetworkMode}}'
特点:
· 两个容器共享同一网络命名空间
· 相同的IP地址和端口映射
· 适合Sidecar模式或网络代理场景
# 创建完整配置的网络
docker network create \\
--driver=bridge \\
--subnet=192.168.100.0/24 \\
--ip-range=192.168.100.128/25 \\
--gateway=192.168.100.254 \\
--opt com.docker.network.bridge.name=br-mynet \\
--opt com.docker.network.bridge.enable_ip_masquerade=true \\
--opt com.docker.network.bridge.enable_icc=true \\
--opt com.docker.network.bridge.host_binding_ipv4=0.0.0.0 \\
my_custom_network
# 创建带子网的网络
docker network create --subnet=10.10.0.0/16 static_net
# 运行容器指定静态IP
docker run -d \\
--name static_container \\
--network static_net \\
--ip 10.10.0.100 \\
nginx:latest
# 验证IP配置
docker inspect static_container --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。
更多技术知识,8455线路检测中心期待与你一起探索。
售前咨询
售后咨询
备案咨询
二维码

TOP