本次实验为 centos6.5版本 虚拟机,不升级内核
(7版本有所不同 需要额外安装 bridge-utils包做桥接网卡 其他差不多同样操作)
注意1: 物理机桥接后,有可能需要把网卡拔了重新插 才能生效
esxi虚拟化管理器有混杂模式的点击按钮,而KVM虚拟管理器的,没有点击按钮调 混杂模式, 桥接网卡就是混杂模式了
注意2: 在桥接分配同网段IP后,如果删除正在运行的容器,会导致宿主机down机
将docker容器 配置成 局域同网段和上网
[root@Docker ~]# uname -r
2.6.32-431.el6.x86_64
1、安装docker
[root@Docker ~]# rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@Docker ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[root@Docker ~]# yum -y install docker-io #7版本安装默认自带的docker就好了
[root@Docker ~]# yum install device-mapper-event-libs #防止启动docker时 死锁,7版本不需要安装,默认已经安装
[root@Docker ~]# service docker restart
[root@Docker ~]# service docker status
[root@Docker ~]# docker pull centos:6
[root@Docker ~]# ip link set dev docker0 down #删除以前的网桥,docker0 为你启动容器时候自动创建
#可以不删除docker0,不删除有时会有冲突,但建议删除比较好
[root@Docker ~]# brctl delbr docker0
[root@Docker ~]# brctl show #查看桥接 状态信息
[root@Docker ~]# cd /etc/sysconfig/network-scripts/
[root@Docker network-scripts]# vim ifcfg-eth0 #配置网桥
DEVICE=eth0
HWADDR=00:0C:29:6D:DF:B8
TYPE=Ethernet
UUID=0b55c691-24ed-422d-bfbd-16bc03fecda4
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0
[root@Docker network-scripts]# vim ifcfg-br0
TYPE=Bridge
DEVICE=br0
HWADDR=00:0C:29:6D:DF:B8
UUID=0b55c691-24ed-422d-bfbd-16bc03fecda4
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.12.169
GATEWAY=192.168.12.254
DNS1=192.168.10.2
注意:
#7版本 不可以用systemctl restart network命令启动网卡,否则会down网卡,和6版本同样用service 启动网卡
或者先关闭网络管理器 有冲突 systemctl stop NetworkManager 再用systemctl restart network命令启动网卡
#pipework是Docker公司工程师Jerome Petazzoni在Github上发布的名为pipework的工具。号称是容器网络的SDN解决方案,可以在复杂的场景下将容器连接起来。它既支持普通的LXC容器,也支持Docker容器。
Pipework有个缺陷,容器重启后IP设置会自动消失,需要重新设置。
下载地址:https://pan.baidu.com/s/1Gmbgqlrgx0_Fb0uNYVsYzQ
[root@Docker network-scripts]# service network restart
[root@Docker network-scripts]# unzip pipework-master.zip
[root@Docker network-scripts]# cp pipework-master/pipework /usr/local/bin/
[root@Docker network-scripts]# cd
#由于6 7版本中 iproute默认版本不支持 ,后期分配IP给容器时会报错,所以需要升级
[root@Docker ~]# rpm -qa|grep iproute #当前iproute版本 #7版本默认3.1需要升级到4.11并且重启服务器才生效
iproute-2.6.32-31.el6.x86_64
[root@Docker ~]# yum install -y http://rdo.fedorapeople.org/rdo-release.rpm
[root@Docker ~]# vim /etc/yum.repos.d/rdo-release.repo
#7版本把后面epel-6改成epel-7即可
[openstack-queens]
name=OpenStack Queens Repository
baseurl=https://repos.fedorapeople.org/repos/openstack/EOL/openstack-icehouse/epel-6/
skip_if_unavailable=0
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-kilo
[root@Docker ~]# yum repolist
[root@Docker ~]# yum install -y iproute
[root@Docker ~]# rpm -qa|grep iproute #升级后的iproute版本
iproute-2.6.32-130.el6ost.netns.2.x86_64
[root@Docker ~]# docker run -itd --net=none --name test centos:6 /bin/bash #运行容器
[root@Docker ~]# pipework br0 test 192.168.12.37/24@192.168.12.254
[root@Docker ~]# docker exec -it test /bin/bash
[root@5d9a7e86cb62 /]# ifconfig | head -5
eth1 Link encap:Ethernet HWaddr BE:1F:68:72:40:08
inet addr:192.168.12.37 Bcast:192.168.12.255 Mask:255.255.255.0
inet6 addr: fe80::bc1f:68ff:fe72:4008/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11266 errors:0 dropped:0 overruns:0 frame:0
[root@5d9a7e86cb62 /]# yum -y install iputils #安装ping命令软件包
[root@5d9a7e86cb62 /]#yum -y install openssh-cline openssh-server #安装允许ssh远程连接
[root@5d9a7e86cb62 /]#passwd root #给用户配置密码
[root@5d9a7e86cb62 /]#vi /etc/ssh/sshd_config #找到 UsePAM 参数,默认时yes,改成no即可
UsePAM no
[root@5d9a7e86cb62 /]#service sshd restart #重启远程连接传输bash-completion-2.1-6.el7.noarch.rpm命令补全包
命令补全包下载地址: https://pan.baidu.com/s/18nGn12aQtwgFRAFg7oBfXA
[root@5d9a7e86cb62 /]#rpm -ivh bash-completion-2.1-6.el7.noarch.rpm
[root@5d9a7e86cb62 /]#exit #退出 重新连接,命令就会补全了
[root@5d9a7e86cb62 /]# ping 192.168.12.254 #ping网关
PING 192.168.12.254 (192.168.12.254) 56(84) bytes of data.
64 bytes from 192.168.12.254: icmp_seq=1 ttl=254 time=5.53 ms
[root@5d9a7e86cb62 /]# ping www.baidu.com #到此完成
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39: icmp_seq=1 ttl=55 time=6.36 ms
64 bytes from 14.215.177.39: icmp_seq=2 ttl=55 time=7.14 ms