网桥网络

docker默认的IP与eth0使用同一个IP

Docker容器默认使用docker0桥接网络,IP地址会自动分配,默认应该是172.17.0.1,默认每个容器都是连接到docker0网桥上的
以下配置docker网卡和eth0使用同一个IP地址,ifcfg-eth0物理网卡内容修改为如下

  1. [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  2. TYPE=Ethernet
  3. BOOTPROTO=none #static修改成none
  4. DEFROUTE=yes
  5. PEERDNS=yes
  6. PEERROUTES=yes
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_PEERDNS=yes
  12. IPV6_PEERROUTES=yes
  13. IPV6_FAILURE_FATAL=no
  14. NAME=eth0
  15. UUID=7f52631c-6112-41c2-8c9b-c36a6ad9dcc8
  16. DEVICE=eth0
  17. ONBOOT=yes
  18. BRIDGE="br0"
  1. yum -y install bridge-utils
  2. systemctl stop docker
  3. ifconfig docker0 down
  4. brctl delbr docker0
  5. brctl addbr br0
  6. ip link set dev br0 up
  7. ip addr add 192.168.1.6/24 dev br0
  8. ip addr del 192.168.1.6/24 dev ens0
  9. brctl addif br0 eth0ip route del defualt

主机网络

修改docker默认的网卡IP

修改docker0的IP地址,无法与宿主机处于同一个网络,目的是为了解决docker0默认IP172.17.0.1与当前宿主机IP冲突问题

  1. #安装软件
  2. yum -y install bridge-utils
  3. #停止服务
  4. sudo service docker stop
  5. #停止docker0网卡
  6. sudo ip link set dev docker0 down
  7. #删除docker0网卡
  8. sudo brctl delbr docker0

/etc/docker/daemon.json文件添加bip参数

  1. {
  2. "registry-mirrors": [
  3. "https://eqcxmbvw.mirror.aliyuncs.com"
  4. ],
  5. "dns": ["8.8.8.8","8.8.4.4"],
  6. "bip": "10.211.55.10/24"
  7. }

重启服务

  1. systemctl deamon-reload
  2. systemctl restart docker

查看IP地址

  1. [root@centos-linux ~]# ip add show docker0
  2. 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
  3. link/ether 02:42:63:9a:f6:82 brd ff:ff:ff:ff:ff:ff
  4. inet 192.168.1.1/24 brd 192.168.1.255 scope global docker0
  5. valid_lft forever preferred_lft forever
  6. inet6 fe80::42:63ff:fe9a:f682/64 scope link
  7. valid_lft forever preferred_lft forever

查看docker当前网桥的IP

  1. docker inspect bridge|grep -A 20 '"Name": "bridge"'

桥接网络

不修改docker容器的默认网络,添加新的网络模式,这样可以实现容器与宿主机在同一个网络

  1. #创建网桥
  2. docker network create -d macvlan --subnet=10.211.55.0/24 --gateway=10.211.55.1 -o parent=eth0 mynet
  3. #创建容器指定IP地址
  4. docker run -d --net=mynet --ip=10.211.55.88 nginx

瓦雀