网桥网络
docker默认的IP与eth0使用同一个IP
Docker容器默认使用docker0桥接网络,IP地址会自动分配,默认应该是172.17.0.1,默认每个容器都是连接到docker0网桥上的
以下配置docker网卡和eth0使用同一个IP地址,ifcfg-eth0物理网卡内容修改为如下
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none #static修改成none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=7f52631c-6112-41c2-8c9b-c36a6ad9dcc8
DEVICE=eth0
ONBOOT=yes
BRIDGE="br0"
yum -y install bridge-utils
systemctl stop docker
ifconfig docker0 down
brctl delbr docker0
brctl addbr br0
ip link set dev br0 up
ip addr add 192.168.1.6/24 dev br0
ip addr del 192.168.1.6/24 dev ens0
brctl addif br0 eth0ip route del defualt
主机网络
修改docker默认的网卡IP
修改docker0的IP地址,无法与宿主机处于同一个网络,目的是为了解决docker0默认IP172.17.0.1与当前宿主机IP冲突问题
#安装软件
yum -y install bridge-utils
#停止服务
sudo service docker stop
#停止docker0网卡
sudo ip link set dev docker0 down
#删除docker0网卡
sudo brctl delbr docker0
/etc/docker/daemon.json文件添加bip参数
{
"registry-mirrors": [
"https://eqcxmbvw.mirror.aliyuncs.com"
],
"dns": ["8.8.8.8","8.8.4.4"],
"bip": "10.211.55.10/24"
}
重启服务
systemctl deamon-reload
systemctl restart docker
查看IP地址
[root@centos-linux ~]# ip add show docker0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 02:42:63:9a:f6:82 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:63ff:fe9a:f682/64 scope link
valid_lft forever preferred_lft forever
查看docker当前网桥的IP
docker inspect bridge|grep -A 20 '"Name": "bridge"'
桥接网络
不修改docker容器的默认网络,添加新的网络模式,这样可以实现容器与宿主机在同一个网络
#创建网桥
docker network create -d macvlan --subnet=10.211.55.0/24 --gateway=10.211.55.1 -o parent=eth0 mynet
#创建容器指定IP地址
docker run -d --net=mynet --ip=10.211.55.88 nginx