LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

彻底搞懂Docker网络:从入门到实战

admin
2025年6月28日 23:40 本文热度 30

一、Docker网络基础认知

1.1 为什么需要关注网络?

容器不是孤岛!当我们需要:

  • 容器间通信(微服务架构)

  • 容器访问外网

  • 外部访问容器服务

  • 多主机容器通信

网络配置就成为关键

1.2 Docker的默认网络

安装Docker时会自动创建3种网络:


$ docker network ls

NETWORK ID     NAME      DRIVER    SCOPE

a1b2c3d4e5f6   bridge    bridge    local

7g8h9i0j1k2l   host      host      local

m3n4o5p6q7r8   none      null      local

二、四大网络模式详解

2.1 Bridge模式(默认)

特点

  • 通过虚拟网桥docker0通信

  • 自动分配IP(172.17.0.0/16)

  • 需要端口映射访问容器

案例:创建Nginx容器


# 运行容器并映射端口

docker run -d --name web -p 8080:80 nginx



# 查看端口映射

docker port web

# 80/tcp -> 0.0.0.0:8080



# 访问测试

curl http://localhost:8080

2.2 Host模式

特点

  • 直接使用宿主机网络栈

  • 无需端口映射

  • 性能最好,但安全性低

案例:运行网络监控工具


docker run --rm --net=host nicolaka/netshoot ss -tulpn

# 直接看到宿主机的网络连接

2.3 None模式

特点

  • 完全禁用网络

  • 适合需要绝对隔离的场景

案例:创建离线数据处理容器


docker run -it --net=none alpine sh

# 执行ifconfig只能看到lo接口

2.4 自定义Bridge网络

优势

  • 自动DNS解析(容器名=主机名)

  • 更好的隔离性

  • 灵活的IP地址管理

实战:构建微服务通信


# 创建自定义网络

docker network create --subnet=192.168.100.0/24 mynet



# 启动Redis容器

docker run -d --net=mynet --name redis redis:alpine



# 启动Python应用

docker run -it --net=mynet python:3.9 sh

# 在Python容器中可以直接ping通redis

ping redis

三、网络连通性实战

3.1 跨网络通信方案

需求场景

已有容器在默认bridge网络,需要连接自定义网络的数据库

解决方案


# 将已有容器连接到新网络

docker network connect mynet existing_container



# 验证连接

docker exec -it existing_container ping redis

3.2 多容器组网实践

部署WordPress系统


# 创建专用网络

docker network create wp_net



# 启动MySQL

docker run -d --net=wp_net --name mysql \

  -e MYSQL_ROOT_PASSWORD=secret mysql:5.7



# 启动WordPress

docker run -d --net=wp_net --name wp \

  -e WORDPRESS_DB_HOST=mysql \

  -p 8080:80 wordpress

四、网络诊断技巧

4.1 常用诊断命令


# 查看容器IP

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名



# 网络连通性测试

docker run --rm --net=container:目标容器 nicolaka/netshoot ping 目标IP



# 流量抓包

docker run --rm --net=container:目标容器 nicolaka/netshoot tcpdump -i eth0

4.2 常见问题排查

问题现象:容器间无法通信

  1. 检查是否在同一网络

  2. 验证防火墙规则

  3. 测试DNS解析

  4. 查看路由表

五、网络架构选型建议

| 场景                | 推荐网络模式     | 优势                      |

|---------------------|----------------|-------------------------|

| 开发测试环境        | 自定义bridge    | 隔离性好,自动DNS          |

| 高性能应用          | host           | 零损耗,直接使用宿主机网络    |

| 安全敏感应用        | none           | 完全网络隔离               |

| 集群部署            | overlay        | 支持跨主机通信(需Swarm模式) |

六、总结与进阶

掌握Docker网络是容器化部署的关键技能:

  1. 理解不同网络模式的特点

  2. 根据场景选择合适的网络方案

  3. 善用自定义网络实现服务隔离

  4. 掌握基础诊断命令


阅读原文:原文链接


该文章在 2025/7/1 23:25:24 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved