Docker持久化固定容器IP

news2024/9/21 10:37:47

基于Docker引擎创建Docker容器,在默认条件下创建容器是bridge桥接模式,启动容器IP地址是DHCP随机分配并且递增的,而且容器之间可以互相通信,网段也是固定的。
当Docker容器一旦关闭再次启动,就会导致容器的IP地址再次重新随机分配,而且有部分容器在部署的时候是不需要互相通信的,所以使用固态ip,保证想要通信的容器在同一网段,并且容器重启之后ip地址也不会随之改变。
根据如上Pipework脚本可以给Docker容器配置固定IP地址,但是重启也会丢失IP地址,有没有方法实现重启容器IP也不丢失呢。持久化固定IP地址操作方法如下:
1)安装桥接工具和Docker-py程序,命令操作如下;

#pip install docker-py
yum install python-docker*
#安装桥接扩展包;
yum install bridge-utils -y

2)从Github仓库下载Docker-static-ip固定IP的脚本,操作命令如下:

#下载docker-static-ip脚本;
git clone https://github.com/lioncui/docker-static-ip

#部署docker-static-ip程序;
mv docker-static-ip /usr/local/
#启动Docker引擎服务;
systemctl start docker.service
#后台启动duration脚本;
cd /usr/local/docker-static-ip/
python duration.py
#查看Python脚本进程;
ps -ef|grep -aiE duraion

在这里插入图片描述
3)新增配置br0桥接网络;
vi ifcfg-ens33内容修改为如下:

cat>/etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
BRIDGE="br0"
IPADDR=192.168.1.151
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
EOF

vi ifcfg-br0内容如下:

cat>/etc/sysconfig/network-scripts/ifcfg-br0 <<EOF
DEVICE="br0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Bridge"
IPADDR=192.168.1.151
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
EOF

重启网络

systemctl restart network

启动docker服务,即可;

service docker restart

4)基于本地CentOS7镜像启动CentOS云主机,网络模式选择–net=none即可,操作指令如下:

docker run -itd --net=none --privileged --name=jfedu-vm01 buhuipao/centos7-ssh
docker exec -it jfedu-vm01 /bin/bash
yum install net-tools.x86_64 -y

5)在/usr/local/docker-static-ip/目录下,将需要给CentOS容器配置的静态IP写入containers.cfg文件即可,内容如下:
jfedu-vm01,br0,192.168.1.101/24,192.168.1.2
在这里插入图片描述
6)查看Docker容器的IP地址,此时就是192.168.1.101,命令如下:
docker exec jfedu-vm01 ifconfig
在这里插入图片描述
7)重启Docker容器,再次查看容器的IP地址,还是192.168.1.101,IP固定成功。

docker restart jfedu-vm01
docker exec jfedu-vm01 ifconfig

在这里插入图片描述
8)通过CRT或者Xshell远程登录创建的CentOS云主机,命令操作如图所示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/480731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#,生信软件实践(01)——序列文件(如FASTA)合并工具的源代码

1 生物信息学简介 生物信息学&#xff08;BioInformatics&#xff09;是研究生物信息的采集、处理、存储、传播&#xff0c;分析和解释等各方面的学科&#xff0c;也是随着生命科学和计算机科学的迅猛发展&#xff0c;生命科学和计算机科学相结合形成的一门新学科。它通过综合…

Photoshop如何使用通道之实例演示?

文章目录 0.引言1.利用通道调整图像的颜色2.给风景照替换天空3.制作故障艺术效果4.使用通道抠取复杂图像 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对PS进行了学习&#xff0c;本文通过《Photoshop2021入门教程》及其配套素材结合网上相关资料进行学习笔记总结&a…

Linux命令集

一、Linux常用的目录处理命令集 1、ls命令&#xff08;用来查看目录和文件&#xff09; &#xff08;1&#xff09;ls -a&#xff08;查看所有文件包括隐藏文件&#xff09; &#xff08;2&#xff09;ls -l &#xff08;以长格式显示目录下的内容列表&#xff09; &#xff0…

【小样本分割 2022 ECCV】DCAMA

文章目录 【小样本分割 2022 ECCV】DCAMA摘要1. 简介2. 网络2.1 整体架构2.2 特征提取与掩模制备2.3 多尺度多层交叉注意加权掩码聚合。2.4 掩码特性混合器。 3. 代码 【小样本分割 2022 ECCV】DCAMA 论文题目&#xff1a;Dense Cross-Query-and-Support Attention Weighted Ma…

【分布式】路由配置服务

在之前我们将路由表以及分组信息一直存储在网关中&#xff0c;如下图&#xff1a; 显然这样设计并不合理&#xff1a; 网关应该只负责对用户的信息进行解析并根据类型进行转发&#xff0c;最大限度减少其他的负荷网关作为一个单点&#xff0c;在出现故障后&#xff0c;我们希…

CH32V307V-EVT-R1 简单上手入门

文章目录 〇、前言一、开发板展示以及介绍二、开发环境配置与搭建2.1 IDE 介绍2.2 IDE 环境搭建2.3 IDE 配置2.3.1 语言切换&#xff08;汉化&#xff1f;不存在的&#xff09; 三、初次烧录与体验四、简单总结与心得&#x1f517; 链接直达 〇、前言 运气不错&#xff0c;前几…

Oracle的存储结构

Oracle数据库的存储结构分为物理存储结构和逻辑存储结构两种。 物理存储结构&#xff1a;主要用于描述在 oracle 数据库外部数据的存储&#xff0c;即在操作系统层面中如何组织和管理数据&#xff0c;与具体的操作系统有关。 逻辑存储结构&#xff1a;主要描述oracle 数据库…

TryHackMe-EnterPrize(boot2root)

EnterPrize 端口扫描 循例nmap Web枚举 进到enterprize.thm gobuster扫 到处扫了一段时间&#xff0c;ffuf扫vhost扫到个maintest 进到maintest&#xff0c;是typo3 /typo3conf下有些文件 在LocalConfiguration.old有一个key&#xff0c;它应该就是提示当中所说的 在谷歌找到…

【开发工具】 什么是Office 今天让你认识它

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&#x1…

HTML5 <select> 标签

实例 HTML5 <select>标签用于实现下拉列表。请参考下面的示例&#xff1a; 创建带有 4 个选项的选择列表&#xff1a; <select> <option value"volvo">Volvo</option> <option value"saab">Saab</option> <opti…

3 文件和目录

3.1 stat、fstat、lstat 函数 #include <sys/types.h> #include <sys/stat.h>//三个函数的返回&#xff1a;若成功则为 0&#xff0c;若出错则为-1 int stat(const char *pathname, struct stat *buf) ; int fstat(int filedes,struct stat * buf) ; int lstat(co…

嵌入式Sqlite数据库【基本语法、Sqlite-JDBC、嵌入到Java程序】

目录 前言 基本介绍 Sqlite 对比 MySQL 字段类型 语法 创建表 插入数据 更新数据 查询数据 删除数据 查看建表语句 Sqlite-JDBC 嵌入到Java程序 前言 最近在用JavaFX做一个桌面软件需要用到数据库&#xff0c;但MySQL这种数据库明显只能本地访问&#xff0c;把软…

gdb server简单探索

前言 gdb server运行于嵌入式设备&#xff0c;比如arm或arm64体系结构&#xff0c;体积小&#xff0c;占用资源少&#xff0c;相当于一个前端。gdb server可以attach到一个strip的进程。 gdb运行于性能更高的主机&#xff0c;如x86设备上&#xff0c;需要有带符号表的相应进程…

【IPv6】基本概念及字段

IPV4知识点&#xff1a; 字段值 IPv4字段共 字段值解释Version版本版本字段&#xff0c;可以区分V4和V6版本&#xff0c;V4是0100&#xff0c;V6是0110&#xff0c;需要注意的是V4和V6头部除了版本字段位置相同外&#xff0c;其他都是不一样的&#xff0c;因此两个协议不能直…

如何编写高质量代码

如何编写高质量代码 1. 前言2. 明确业务场景和用户需求3. 编程实践技巧3.1 提高命名规范3.2 保持代码简洁3.3 好的注释 4. 软件测试5. 总结 1. 前言 现代软件开发中&#xff0c;代码是构建高质量软件的核心。高质量代码能够提高软件系统的可靠性、可维护性和可扩展性&#xff…

3.3 动态存储随机存储器

学习目标&#xff1a; 理解动态随机存取存储器的基本原理和工作机制。掌握动态随机存取存储器的读写操作及时序。理解动态随机存取存储器的存储单元结构和电路设计。熟悉动态随机存取存储器的刷新技术及其影响因素。理解动态随机存取存储器与静态随机存取存储器的异同。掌握动态…

2008-2019年主要城市PITI指数

2008-2019年主要城市PITI指数 1、来源&#xff1a;附在文件内 2、时间区间&#xff1a;2008-2019年 3、具体时间分布&#xff1a;、2008、2009-2010、2011、2012、2013-2014、2014-2015、2015-2016、2016-2017、2017-2018、2018-2019、 4、范围&#xff1a;包括110个城市&a…

Runtime Data Area(运行时数据区域)

运行时数据区是JVM用来管理和存储Java程序执行过程中所需要的各种数据的区域&#xff0c;也成为JVM内存结构。JVM内存结构主要包括以下几个部分&#xff1a; 程序计数器&#xff08;Program Counter Register&#xff09; 程序计数器是一种特殊的内存区域&#xff0c;它可以在…

线索二叉树(前中后序线索化/遍历/画线索)

线索二叉树 文章目录 线索二叉树1 线索二叉树的基本概念2 线索二叉树的构造2.1 线索二叉树的存储结构2.2 给线索二叉树画线索2.2.1 中序2.2.2 先序2.2.3 后序 2.3 二叉树线索化代码实现2.3.1 通过中序遍历线索化2.3.2 通过先序遍历线索化2.3.3 通过后序遍历线索化 3 线索二叉树…