云计算核心技术Docker教程:pipework 配置本地网络

云计算核心技术Docker教程:pipework 配置本地网络

  来源:TechWeb.com.cn   Docker 服务启动时默认会创建一个 docker0 网桥,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器通过桥接和本地主机都放到同一个物理网络。但是在使用Docker的过程中,有时候我们会有将Docker容器

Docker 服务启动时默认会创建一个 docker0 网桥,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器通过桥接和本地主机都放到同一个物理网络。但是在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求。要实现这个需求,我们只要将Docker容器和主机的网卡桥接起来,再给Docker容器配上IP就可以了。我们使用pipework工具可以实现这一需求。

1.首先安装bridge-utils网桥管理工具

# yum install bridge-utils

2.在CentOS系统下,创建一个网桥 br0:

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

BOOTPROTO=static

USERCTL=no

IPADDR=192.168.1.3

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

PREFIX=24

DELAY=0

DNS1=192.168.1.1

3.在CentOS系统下,编辑/etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

BRIDGE=br0

4.在/etc/sysconfig/docker 文件中,添加如下Docker参数:

other_args=”-b br0″

5. 重启网络服务

$ sudo service docker restart

6.pipework安装

$ git clone https://github.com/jpetazzo/pipework.git

$ sudo cp pipework/pipework /usr/local/bin/

7.启动两个测试容器

docker run -itd –name test1 –net=none centos /bin/bash

docker run -itd –name test2 –net=none centos /bin/bash

8.设置容器ip

pipework br0 test2 192.168.1.22/24@192.168.1.1

pipework br0 test1 192.168.1.33/24@192.168.1.1

容器con1和con2内部可以看到有一个网卡地址分别如上,并且可以ping通,设置完成。

使用pipework自建桥接网络优点是可以每个容器都有独立ip,对外提供服务,如nginx+php,nginx+resin,都可以使用默认的80端口,并且由于容器暴露端口都可以使用80端口,因此前端路由层nginx配置(proxy_pass)里可以使用dns的方式。缺点是使用pipework绑定的ip物理机,虚拟机,docker容器的ip都在同一网段,重启后将失效,这在实际生产环境中是很难实现的,并且不适合数量多的容器,分配配置麻烦。

本文源自TechWeb.com.cn

【云技术在线】为您提供以下专业技术服务:

上云服务:上云架构设计,大流量高并发架构设计,混合云架构设计,上云迁移,云上容灾,跨国云访问加速等;

安全服务:等保咨询及实施,渗透测试,漏洞扫描,木马查杀,安全加固,应急响应,DDOS/CC防护,勒索病毒防护,安全托管等;

运维服务:Linux系统运维,数据恢复及备份,负载均衡集群搭建及维护,数据库集群搭建及维护,网站运行环境搭建及维护,系统性能调优,中间件性能调优,数据库性能调优,数据库读写分离,分库分表,性能(压力)测试,7*24小时监控及故障应急响应,故障排查,大流量高并发活动护航等。