虚拟机安装centos6.5(ip范围从192.168.150.130-255,虚拟机网关192.168.150.2)
实验步骤:
0.停止docker:service docker stop
1.安装brctlyum install bridge-utils
2.配置桥接接口
brctl addbr br0
brctl addif br0 eth0
3.这是br0的配置文件ifcfg-br0:
vim /etc/sysconfig/network-script/ifcfg-br0(可复制ifcfg-eth0)
4.这是eth0的配置文件ifcfg-eth0:
vim /etc/sysconfig/network-script/ifcfg-eth0
5.重启网络: service network restart
ip addr
ifcofnig
6.配置Docker使用br0
1 | ip link set dev docker0 down` |
7.修改docker变量使用br0:
vim /etc/sysconfig/docker
other_args="-b=br0"
8.启动docker:service docker start
查看 iptables是否正常:iptables -t nat -L -n
9.启动docker容器并设置ip:
启动docker容器:
1 | docker run -ti --name docker1 --net=none --rm -v /usr/local/nginx/html:/usr/share/nginx/html:ro nginx:V4 /bin/bash |
docker attach
查看ip addr 只有一个lo
10.在宿主机上执行如下脚本 格式如下:脚本 容器id 容器ip 子网掩码 网关 网络通道名
1 | ./docker-staticIP.sh e4cbb0f311a7 192.168.150.145 24 192.168.150.2 veth2 |
脚本如下:
1 | #/bin/bash |
11.在容器中ip addr就多一个eth0网络
12.在宿主机中查看ip addr 也多了一个veth2
13.游览器中访问容器的nginx,显示成功且容器中打印日志
14.测试时遇到如下问题:
解决办法:安装最新版的iproute:
1 | wget https://repos.fedorapeople.org/openstack/EOL/openstack-grizzly/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm |