pipe分配容器IP后,随着容器的重启而丢失,需要再次配置才行。
故现使用python-docker来持久化IP,即duration.py脚本
安装Docker-py程序
#pip install docker-py
或
[root@localhost data]# yum install python-docker* -y
#安装桥接扩展包;
[root@localhost data]# yum install bridge-utils -y
下载docker-static-ip脚本;
[root@localhost data]# yum install git -y
[root@localhost data]# git clone https://github.com/lioncui/docker-static-ip
部署docker-static-ip程序;
[root@localhost data]# mv docker-static-ip /usr/local/
重新启动Docker引擎服务;
这里是二进制DOCKER包
[root@localhost data]# docker ps -qa|xargs docker stop
[root@localhost data]# pkill docker
[root@localhost data]# nohup /usr/local/docker/dockerd &
后台启动duration脚本;
[root@localhost data]# cd /usr/local/docker-static-ip/
配置IP及路由文件
[root@localhost docker-static-ip]# cat containers.cfg
#<container-id>,<bridge-name>,<ipaddress/netmask>,<gateway>
test,docker0,172.17.0.100/24,172.17.0.1
这里的container-id 可以为name 容器名称
启动脚本
[root@localhost docker-static-ip]# chmod a+x duration.py
[root@localhost docker-static-ip]# python duration.py
[root@localhost docker-static-ip]# ps -ef|grep duration
root 16627 1 0 13:32 pts/1 00:00:00 python duration.py
root 16712 2276 0 13:33 pts/1 00:00:00 grep --color=auto duration
创建容器
[root@localhost docker-static-ip]# docker run -itd --privileged --name=test nginx:latest
32dba7cd3f5b0ae6bcbec5fbe243929a6ee7a5dac0811e0a5a706c8968d7b760
测试
[root@localhost docker-static-ip]# ping 172.17.0.100
PING 172.17.0.100 (172.17.0.100) 56(84) bytes of data.
64 bytes from 172.17.0.100: icmp_seq=1 ttl=64 time=0.818 ms
64 bytes from 172.17.0.100: icmp_seq=2 ttl=64 time=0.125 ms
注:
duration.py 也支持 --net=none模式,不一一演示了
----------------------end