容器使用宿主机网络提供服务

参考博客: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
发布了66 篇原创文章 · 获赞 8 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/gnufre/article/details/103782066