一个重建Docker容器后保持容器的IP地址不变的方案
来源:互联网 发布:淘宝固定背景添加链接 编辑:程序博客网 时间:2024/06/07 05:23
前提:Docker支持对自定义网络使用--ip制定自定义网络容器ip地址,如果未制定--ip参数(即首次创建容器会自动分配一个)。
1. 创建自定义网络(指定ip需要重启docker服务)
docker network create mynet && service docker restart
2. 创建脚本文件 recreateContainer.sh
#!/bin/shexport DOCKER_NETWORK=mynetexport DOCKER_REGISTRY=172.16.1.160:5000ip=`docker inspect $1 | jq .[].NetworkSettings.Networks.$DOCKER_NETWORK.IPAddress`if [ "$ip" = '""' ]then #container stoped,cannot get ip from docker inspect, try to get ip from hosts hostname=`docker inspect $1 | jq .[].Config.Hostname|sed 's/\"//g'` id=`docker inspect $hostname | jq .[].Id | sed 's/\"//g' ` ip=`cat /var/lib/docker/containers/$id/hosts| grep $hostname | awk '{print $1}'`fi#replace "ip=`echo $ip |sed 's/\"//g'`docker rm -f $1if [ "$ip" = '' ]then docker run -d --restart=always --name=$1 --hostname=$1 --network=$DOCKER_NETWORK $DOCKER_REGISTRY/centos /bin/tail -f /etc/hostselse docker run -d --restart=always --name=$1 --hostname=$1 --network=$DOCKER_NETWORK --ip=$ip $DOCKER_REGISTRY/centos /bin/tail -f /etc/hostsfi
3. 安装json解析工具jq
# sudo dnf install -y jq
4. 测试脚本
# sh recreateContainer.sh os1os160dc6c04b6be130a4eff047c6d64367025ef34c96d78e55134fc44efc2295979
1 0
- 一个重建Docker容器后保持容器的IP地址不变的方案
- 如何获取 docker 容器(container)的 ip 地址
- 为Docker容器指定自定义网段的固定IP/静态IP地址
- 为Docker容器指定自定义网段的固定IP/静态IP地址
- 为Docker容器指定自定义网段的固定IP/静态IP地址
- 为Docker容器指定自定义网段的固定IP/静态IP地址
- 保存修改后的Docker容器
- 给docker容器分配静态ip地址
- 如何在Ubuntu容器中查看容器的IP地址?
- Docker容器的数据管理
- Docker容器的数据管理
- Docker容器的端口映射
- docker的容器调试
- docker容器的配置
- docker容器的使用
- 3亿Docker容器部署的挑战及应对方案
- Docker容器内应用的日志收集方案
- docker查看容器IP
- 收缩菜单,frame与bounds的运用
- matlab画图速度变慢
- C++临时对象
- 正确涂CPU硅脂的方法要这样
- 常用的内部排序
- 一个重建Docker容器后保持容器的IP地址不变的方案
- mysql读写分离
- 自己实现spring
- Android数据库更新并保留原来数据的实现
- Android应用开发学习笔记03--处理设备显示和方向
- Hmac对摘要加密后,怎么把他解密回来?
- 集线器和交换机的区别
- NS3网络仿真(7): Wifi节点
- SpannableString和SpannableStringBuilder的使用