Docker 网络详解
Docker 网络架构、网络驱动类型和网络配置
📋 目录
网络驱动类型
内置驱动
- bridge:默认网络驱动,用于单主机
- host:直接使用宿主机网络
- none:禁用网络
- overlay:用于多主机网络(Swarm)
- macvlan:为容器分配 MAC 地址
Bridge 网络
默认 Bridge 网络
# 查看默认 bridge 网络
docker network inspect bridge创建自定义 Bridge 网络
# 创建 bridge 网络
docker network create my-bridge
# 创建网络并指定子网
docker network create --subnet=172.20.0.0/16 my-bridge
# 创建网络并指定网关
docker network create \
--subnet=172.20.0.0/16 \
--gateway=172.20.0.1 \
my-bridge使用 Bridge 网络
# 运行容器时指定网络
docker run -d --network my-bridge nginx:latest
# 将运行中的容器连接到网络
docker network connect my-bridge my-containerHost 网络
使用 Host 网络
# 使用 host 网络
docker run -d --network host nginx:latest特点
- 容器直接使用宿主机网络
- 性能最好
- 端口映射无效
- 安全性较低
Overlay 网络
创建 Overlay 网络
# 初始化 Swarm
docker swarm init
# 创建 overlay 网络
docker network create --driver overlay my-overlay使用 Overlay 网络
# 在 Swarm 服务中使用
docker service create --network my-overlay nginx:latestMacvlan 网络
创建 Macvlan 网络
# 创建 macvlan 网络
docker network create -d macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 \
my-macvlan使用 Macvlan 网络
# 使用 macvlan 网络
docker run -d --network my-macvlan --ip=192.168.1.100 nginx:latest自定义网络
网络配置选项
# 创建自定义网络
docker network create \
--driver bridge \
--subnet=172.20.0.0/16 \
--gateway=172.20.0.1 \
--ip-range=172.20.240.0/20 \
my-network网络管理
# 列出所有网络
docker network ls
# 查看网络详细信息
docker network inspect my-network
# 删除网络
docker network rm my-network
# 删除所有未使用的网络
docker network prune网络插件
使用网络插件
# 安装网络插件
docker plugin install plugin-name
# 使用插件创建网络
docker network create --driver plugin-name my-network