在Docker实战中,自定义网桥允许用户创建并配置自己的网络以满足特定需求。以下是如何创建和使用自定义网桥的基本步骤:
创建自定义网桥
-
安装必要的工具:
在Linux系统上,需要bridge-utils
来管理网桥。sudo apt-get install bridge-utils # 对于基于Debian的系统如Ubuntu sudo yum install bridge-utils # 对于基于RHEL的系统如CentOS
-
手动创建自定义网桥:
创建一个新的名为my_bridge
的网桥,并分配一个子网(例如192.168.10.0/24)。sudo brctl addbr my_bridge sudo ip addr add 192.168.10.1/24 dev my_bridge sudo ip link set my_bridge up
-
配置Docker使用自定义网桥:
修改Docker守护进程配置文件/etc/docker/daemon.json
来指定默认网桥或通过启动参数设置。{ "bip": "192.168.10.1/24", "default-address-pool": [ {"base": "192.168.10.0/24", "size": 24} ], "fixed-cidr": "192.168.10.0/24" }
注意:从Docker 17.06开始,不再推荐直接修改docker0,而是建议创建自定义网络。
重启Docker服务以应用更改:
sudo systemctl restart docker
或者,如果你不打算改变默认网桥,可以创建自定义网络时指定自定义网桥:
docker network create --driver=bridge --subnet=192.168.20.0/24 --gateway=192.168.20.1 --opt com.docker.network.bridge.name=my_bridge custom_network
使用自定义网桥
- 启动容器并连接到自定义网桥:
docker run -d --network=custom_network --name my_container image_name
这样,容器将连接到名为custom_network
的自定义网桥,并且可以通过该网桥与同一网络内的其他容器通信。
注意事项:
- Docker自身提供了更高级的网络功能,包括overlay网络等,它们通常用于多主机环境或更复杂的网络配置。
- 当前Docker的最佳实践是使用Docker内置的网络驱动来创建自定义网络,而不是直接操作底层的Linux网桥。上述操作适用于特殊情况,如对低级网络有特殊要求的情况。