参考博客:https://blog.51cto.com/13941177/2296529
因业务需要,需要容器提供固定ip地址提供服务,特使用如下方式实现。
采用容器的none网络模型
使用pipework 配合自建网桥实现
一、配置宿主机网桥
# cat /etc/sysconfig/network-scripts/ifcfg-em1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
BRIDGE="br0"
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em1
UUID=48bbc7ec-f146-4485-9a08-51f84519e97d
DEVICE=em1
ONBOOT=yes
#IPADDR="192.168.103.121"
#PREFIX="21"
#GATEWAY="192.168.100.254"
# cd /etc/sysconfig/network-scripts/
# cp -rf ifcfg-em1 ifcfg-br0
# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
NM_CONTROLLED="no"
BOOTPROTO="static"
TYPE="Bridge"
IPADDR="192.168.103.121"
PREFIX="21"
GATEWAY="192.168.100.254"
DNS1="223.5.5.5"
DNS2="223.6.6.6"
# systemctl restart network 重启网卡
二、创建一个none模式的容器
# docker run -itd --name test --net=none alpine /bin/sh
三、下载pipework
# yum -y install git
# git clone https://github.com/jpetazzo/pipework
# cp pipework/pipework /usr/local/bin/
四、使用pipework 配置容器ip
pipework br0 test1 192.168.103.123/[email protected]
五、进入容器验证ip,验证网络连通性。
# docker exec -it test sh
# ip addr
# ping 192.168.100.254
# ping www.baidu.com