docker0简介
安装好docker,并启动docker服务后,通过ifconfig查看本机的网络设备。
可以看到有一个名为docker0的网络设备,docker0是linux的虚拟网桥。docker的守护进程就是通过docker0为docker容器提供网络链接的。
linux虚拟网桥的特点:
(1)网桥属于数据链路层设备,但是linux虚拟网桥可以设置IP地址。
(2)相当于拥有一个隐藏的虚拟往卡
docker地址划分:
IP:172.17.0.1
子网掩码:255.255.0.0
总共提供65534个地址。
docker再容器启动时要创建网络链接的两端。一端是容器中的网络设备,另一端是再运行docker的主机上打开一个名为veth的网络接口,用来实现docker网桥和容器的网络通信。
安装网桥管理工具:
(1)安装
sudo yum install bridge-utils
(2)查看网桥设备
sudo brctl show
自定义docker0
(1)修改docker0地址:
sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0
(2)查看修改结果
(3)重启docker服务,重新启动容器,将会看到容器的ip会使用我们设置的网段。
自定义虚拟网桥
(1)添加虚拟网桥相关命令如下
//创建一个新的网桥
sudo brctl addbr br0
//为网桥设置ip和子网掩码
sudo ip addr add 192.168.5.1/24 dev bridge0
//启动新创建的网桥
sudo ip link set dev br0 up
//删除网桥
sudo brctl delbr docker0
(2)配置docker启动项
//进入docker启动配置文件
sudo vi /etc/sysconfig/docker
//配置内容如下
DOCKER_OPS="-b=br0"
重启docker服务后发现配置的网桥并没有生效,于是打开docker服务启动文件
sudo vi /usr/lib/systemd/system/docker.service
发现参数配置为OPTIONS于是修改/etc/sysconfig/docker
内容如下,此时重启docker服务,网桥生效。
OPTIONS="-b=br0"