Docker-none模式+duration 持久化固定容器ip地址

scadm 2021年5月15日23:25:55
评论
1,5394 2445字

基于Docker引擎创建Docker容器,在默认条件下创建容器是bridge桥接模式,启动容器IP地址是DHCP随机分配并且递增的,而且容器之间可以互相通信,网段也是固定的。

当Docker容器一旦关闭再次启动,就会导致容器的IP地址再次重新随机分配,而且有部分容器在部署的时候是不需要互相通信的,所以使用固态ip,保证想要通信的容器在同一网段,并且容器重启之后ip地址也不会随之改变。

根据如上Pipework脚本可以给Docker容器配置固定IP地址,但是重启也会丢失IP地址,有没有方法实现重启容器IP也不丢失呢。持久化固定IP地址

安装桥接工具和Docker-py程序

[root@scyun-node-1 ~]# yum install python-docker* -y
[root@scyun-node-1 ~]# yum install bridge-utils -y 
Docker-none模式+duration 持久化固定容器ip地址

从Github仓库下载Docker-static-ip固定IP的脚本

[root@scyun-node-1 ~]# git clone https://github.com/lioncui/docker-static-ip
正克隆到 'docker-static-ip'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
Unpacking objects: 100% (11/11), done.
remote: Total 11 (delta 2), reused 11 (delta 2), pack-reused 0
Docker-none模式+duration 持久化固定容器ip地址

部署docker-static-ip

把下载下来的目录放到/us/lcoal/下

[root@scyun-node-1 ~]# mv docker-static-ip/ /usr/local/
Docker-none模式+duration 持久化固定容器ip地址

后台启动duration脚本

[root@scyun-node-1 ~]# cd /usr/local/docker-static-ip/
[root@scyun-node-1 docker-static-ip]# ls
containers.cfg  duration.py  README.md
[root@scyun-node-1 docker-static-ip]# nohup python duration.py &
[2] 7489
[root@scyun-node-1 docker-static-ip]# nohup: 忽略输入并把输出追加到"nohup.out"

[2]+  完成                  nohup python duration.py

Docker-none模式+duration 持久化固定容器ip地址

查看duration 进程

[root@scyun-node-1 docker-static-ip]# ps -ef |grep -aiE "duration"
root       7502      1  0 22:57 pts/0    00:00:00 python duration.py
root       7504   7141  0 22:59 pts/0    00:00:00 grep --color=auto -aiE duration
Docker-none模式+duration 持久化固定容器ip地址

修改containers.cfg

在/usr/local/docker-static-ip/目录下,将需要给CentOS容器配置的静态IP写入containers.cfg文件即可

[root@scyun-node-1 docker-static-ip]# echo "scyun_vm01,docker0,172.17.0.188/16,172.17.0.1" >> containers.cfg 
[root@scyun-node-1 docker-static-ip]# cat containers.cfg 
#<container-id>,<bridge-name>,<ipaddress/netmask>,<gateway>
scyun_vm01,docker0,172.17.0.188/16,172.17.0.1
Docker-none模式+duration 持久化固定容器ip地址

搞一台centos7测试一下

先搞个centos镜像,上传镜像

Docker-none模式+duration 持久化固定容器ip地址

随便启一台centos 看看IP地址

[root@scyun-node-1 docker]# docker run -itd --net=none --name=scyun_vm01 --privileged centos7-ansible:latest
68e011563688792805a13c2dd21e046e2f6ce15f4dc178be6a4851df8f30b090

[root@scyun-node-1 docker]# docker exec -it $(docker ps |grep -aiE "centos"|awk '{print $1}') /bin/bash
[root@68e011563688 ansible]# yum install net-tools -y
下图可以看到ip地址已经变了,只有name=刚刚containers.cfg中定义的名字,ip就不会变。

Docker-none模式+duration 持久化固定容器ip地址

再从containers.cfg 文件中写入一个ip测试

[root@scyun-node-1 docker]# echo "scyun_vm02,docker0,172.17.0.200/16,172.17.0.1" >> /usr/local/docker-static-ip/containers.cfg 
[root@scyun-node-1 docker]# docker run -itd --net=none --name=scyun_vm02 --privileged centos7-ansible:latest
81659a88bf4916d6d4ab9be01e79fd71e0bc089fc4671c412d7b68f631564a1b
[root@scyun-node-1 docker]# docker exec -it scyun_vm02 /bin/bash
[root@81659a88bf49 ansible]# yum install net-tools -y
Docker-none模式+duration 持久化固定容器ip地址
Docker-none模式+duration 持久化固定容器ip地址

 

 

 

 

 

 

 

继续阅读
Docker最后更新:2021-9-11
scadm
  • 本文由 发表于 2021年5月15日23:25:55
  • 转载请务必保留本文链接:https://www.wscyun.com/1471
Docker五款顶级的容器GUI图形工具 运维

Docker五款顶级的容器GUI图形工具

你是否还在大量控制台窗口中监控容器,还是对使用终端命令充满热情?而使用Docker的图形用户界面(GUI)工具,则可以更简单的对容器进行管理,并提高效率。而且它们都是免费的。 Portainer Po...
可视管理工具Portainer Docker 图形化管理工具 运维

可视管理工具Portainer Docker 图形化管理工具

Portainer 是 Docker 的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm ...
Docker 虚拟化命令 30+ Docker

Docker 虚拟化命令 30+

docker search 在docker hub中搜索镜像; docker pull 从docker镜像源服务器拉取指定镜像或者库镜像; docker push 推送指定镜像或者库镜像至docker...