centos7 docker 使用pipework 做虚拟机

网卡配置文件 及 bridge的静态配置

centos7 Bridge配置

[root@mon-1 ~]# cd  /etc/sysconfig/network-scripts/

[root@mon-1 network-scripts]# vim ifcfg-ens33

 1 TYPE="Ethernet"
 2 BOOTPROTO="static"
 3 DEFROUTE="yes"
 4 IPV4_FAILURE_FATAL="no"
 5 IPV6INIT="yes"
 6 IPV6_AUTOCONF="yes"
 7 IPV6_DEFROUTE="yes"
 8 IPV6_FAILURE_FATAL="no"
 9 IPV6_ADDR_GEN_MODE="stable-privacy"
10 NAME="ens33"
11 UUID="44dad4b3-8c0b-4cd7-aa95-8d05168b0bcb"
12 DEVICE="ens33"
13 IPV6_PEERDNS="yes"
14 IPV6_PEERROUTES="yes"
15 IPV6_PRIVACY="no"
16 ONBOOT=yes
17 #IPADDR=192.168.1.151
18 #GATEWAY=192.168.1.1
19 #PREFIX=24
20 #DNS1=114.114.114.114
21 BRIDGE=br0

[root@mon-1 network-scripts]# vim  ifcfg-br0

 1 TYPE=Bridge
 2 BOOTPROTO=static
 3 DEFROUTE=yes
 4 PEERDNS=yes
 5 PEERROUTES=yes
 6 IPV4_FAILURE_FATAL=no
 7 IPADDR=192.168.1.151
 8 GATEWAY=192.168.1.1
 9 PREFIX=24
10 DNS1=114.114.114.114
11 DEVICE=br0
12 ONBOOT=yes

注意: TYPE 为 Bridge,不是Ethernet

           BOOTPROTO 为 static,需要添加 IPADD=XXXX  配置IP地址及网关

           DEVICE  为设备名称

           以上三项为必有项。

          ONBOOT 系统启动时,是否启动。yes 启动,no 不启动。 no时需要手动启动 ifup br0

创建好网桥配置文件后,重启网络或br0

         # service network restart

   #ifup br0

最好使用后者,前者会重启所有网络,由于其他网卡配置文件不正确,导致重启失败。

通过 命令查看 网桥是否存在:

   #ip a

或  # ifconfig

通过 brctl show 查看网卡是否挂载到 网桥上。

如果没有brctl  命令

yum install bridge-utils -y

1 [root@mon-1 network-scripts]# brctl show              
2 bridge name     bridge id               STP enabled     interfaces
3 br0             8000.000c295ce379       no              ens33
4                                                         veth1pl4004
5 docker0         8000.02425b035439       no              vethc4a2cc5

pipework 安装

[root@mon-1 ~]# yum install  git -y

[root@mon-1 ~]# git clone https://github.com/jpetazzo/pipework.git

[root@mon-1 ~]# cp -rp pipework/pipework /usr/local/bin/

[root@mon-1 ~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

lys/v1.0            latest              efd998bd6817        2 years ago         296.9 MB

[root@mon-1 ~]#docker run  -itd --name="192-168-1-152"  lys/v1.0 bin/bash

[root@mon-1 ~]# pipework br0 192-168-1-152 192.168.1.152/24@192.168.1.1 

[root@mon-1 ~]# docker exec -it ce8d6be241cb bin/bash

bash-4.1# ip a

 1 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
 2     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 3     inet 127.0.0.1/8 scope host lo
 4        valid_lft forever preferred_lft forever
 5     inet6 ::1/128 scope host 
 6        valid_lft forever preferred_lft forever
 7 6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
 8     link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
 9     inet 172.17.0.3/16 scope global eth0
10        valid_lft forever preferred_lft forever
11     inet6 fe80::42:acff:fe11:3/64 scope link 
12        valid_lft forever preferred_lft forever
13 9: eth1@if10: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP qlen 1000
14     link/ether 06:e8:83:82:45:5b brd ff:ff:ff:ff:ff:ff
15     inet 192.168.1.152/24 brd 192.168.1.255 scope global eth1
16        valid_lft forever preferred_lft forever
17     inet6 fe80::4e8:83ff:fe82:455b/64 scope link 
18        valid_lft forever preferred_lft forever

此时你会看到容器中新增加了一块网卡

原文地址:https://www.cnblogs.com/Tempted/p/7239743.html