赞
踩
图中最下面的 eth0为本机的外网网卡设备
1、获取本机的网卡 ifconfig
2、手动创建一个虚拟网卡(网桥)
cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-br0
[root@node2 network-scripts]# vi ifcfg-br0
TYPE=“bridge”
BRIDGE=“br0”
BOOTPROTO=static
DEFROUTE=yes
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.10.135
GATEWAY=192.168.10.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
3、启动新的网卡(网桥) ifconfig br0 up
4、修改docker.service 文件,增加-b br0 的参数
[root@node2 network-scripts]# vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current -b br0
这样指定启动服务时的网卡为br0
5、使参数生效:
systemctl daemon-reload
systemctl restart docker
6、查看网络,br0生效了:
[root@node2 ~]# ifconfig br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.18.0.1 netmask 255.255.0.0 broadcast 0.0.0.0 ether 76:3e:f8:46:5e:e1 txqueuelen 1000 (Ethernet) RX packets 16 bytes 1088 (1.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.10.1 netmask 255.255.255.0 broadcast 0.0.0.0 inet6 fe80::42:4aff:fe6b:8061 prefixlen 64 scopeid 0x20<link> ether 02:42:4a:6b:80:61 txqueuelen 0 (Ethernet) RX packets 24 bytes 1632 (1.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 656 (656.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.135 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::9b50:e592:a2e1:5127 prefixlen 64 scopeid 0x20<link> ether 00:50:56:26:02:e6 txqueuelen 1000 (Ethernet) RX packets 862 bytes 69807 (68.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0
6、新启动一个容器
[root@node2 ~]# docker run -itd --name=nginx4 192.168.10.135:5000/nginx:v1
8bb095b460888d2519101bdcb7b47a617a55682b6d97ab4529c1cdbf8d458532
查看该容器的ip是br0 网卡的网段:
[root@node2 docker-static-ip]# docker inspect nginx4|grep -i ipa
"SecondaryIPAddresses": null,
"IPAddress": "172.18.0.3"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。