网桥网络
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-eth0TYPE=EthernetBOOTPROTO=none #static修改成noneDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noNAME=eth0UUID=7f52631c-6112-41c2-8c9b-c36a6ad9dcc8DEVICE=eth0ONBOOT=yesBRIDGE="br0"
yum -y install bridge-utilssystemctl stop dockerifconfig docker0 downbrctl delbr docker0brctl addbr br0ip link set dev br0 upip addr add 192.168.1.6/24 dev br0ip addr del 192.168.1.6/24 dev ens0brctl 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-reloadsystemctl restart docker
查看IP地址
[root@centos-linux ~]# ip add show docker03: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWNlink/ether 02:42:63:9a:f6:82 brd ff:ff:ff:ff:ff:ffinet 192.168.1.1/24 brd 192.168.1.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:63ff:fe9a:f682/64 scope linkvalid_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
