天天看点

使用pipework配置docker容器固定ip

首先讲一下docker的网络模式:

    我们使用docker run创建容器时,可以使用--net选项指定容器的网络模式,docker一共有4中网络模式:    

 1:bridge模式,--net=bridge(默认)。

   这是dokcer网络的默认设置。安装完docker,系统会自动添加一个供docker使用的网桥docker0,我们创建一个新的容器时,容器通过DHCP获取一个与docker0同网段的IP地址。并默认连接到docker0网桥,以此实现容器与宿主机的网络互通。如下:

<a href="http://s1.51cto.com/wyfs02/M01/7F/28/wKioL1cVo2Ow6j7qAAA32YRYSMI530.png" target="_blank"></a>

 2:host模式,--net=host。

   这个模式下创建出来的容器,将不拥有自己独立的Network Namespace,即没有独立的网络环境。它使用宿主机的ip和端口。

 3:container模式,--net=container:NAME_or_ID。

   这个模式就是指定一个已有的容器,共享该容器的IP和端口。除了网络方面两个容器共享,其他的如文件系统,进程等还是隔离开的。

 4:none模式,--net=none。

   这个模式下,dokcer不为容器进行任何网络配置。需要我们自己为容器添加网卡,配置IP。

因此,若想使用pipework配置docker容器的ip地址,必须要在none模式下才可以。

pipework安装:

1

2

3

4

<code># wget https://github.com/jpetazzo/pipework/archive/master.zip</code>

<code># unzip pipework-master.zip</code>

<code># cp pipework-master/pipework  /usr/local/bin/</code>

<code># chmod +x /usr/local/bin/pipework</code>

创建none模式的容器,为其分配IP。

<code>#docker run -idt --name test --net=none resin</code>

<code>#pipework docker0 test 172.17.0.100/[email protected]</code>

<a href="http://s4.51cto.com/wyfs02/M00/7F/2A/wKiom1cVowqzo33bAABqs1fHI6s792.png" target="_blank"></a>

 以上操作给新建的test容器分配了一个172.17.0.100的IP地址。

本文转自 icenycmh 51CTO博客,原文链接:http://blog.51cto.com/icenycmh/1765301,如需转载请自行联系原作者