docker如何容器迁移(实战)
手把手教你如何做容器迁移
第一步准备数据
假设要迁移一个 mysql 服务(docker部署),由于数据库过大(超过50 GB),用mysqldump备份和还原则太过耗时,下面尝试拷贝目录的方式来迁移,详细过程如下:
老机器:192.168.4.231
新机器:192.168.4.232
- 老机器:创建mysql 5.7容器并准备测试数据
docker pull mysql:5.7
mkdir -p /data/docker/mysql/{binlog,log,opt,var}
curl -sL http://iso.sqlfans.cn/docker/yml/mysql-my.cnf -o /data/docker/mysql/my.cnf
docker run --name mysql -v /data/docker/mysql/my.cnf:/etc/my.cnf -v /data/docker/mysql/opt:/opt -v /data/docker/mysql/log:/var/log/mysql -v /data/docker/mysql/var:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=z27SoKdj_JxnyvG8 -d mysql:5.7 --lower_case_table_names=1sleep 30
docker exec -it mysql /bin/bash -c 'mysql -uroot -pz27SoKdj_JxnyvG8 -e"create database if not exists abc;"'
docker exec -it mysql /bin/bash -c 'mysql -uroot -pz27SoKdj_JxnyvG8 -e"show databases;"'
容器迁移步骤
- 第1步,老机器:执行 docker inspect 找到该容器所映射的外部目录,示例 /data/docker/mysql/*
[root@192.168.4.231]# docker inspect mysql | more"HostConfig": {"Binds": ["/data/docker/mysql/my.cnf:/etc/my.cnf","/data/docker/mysql/opt:/opt","/data/docker/mysql/log:/var/log/mysql","/data/docker/mysql/var:/var/lib/mysql"],
- 第2步,老机器:执行 docker ps 找到该容器所使用的镜像 repository和tag,示例 mysql:5.7
[root@192.168.4.231]# docker ps -a | grep mysql
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da7c4b1a9d4f mysql:5.7 "docker-entrypoint.s…" 29 minutes ago Up 29 minutes 0.0.0.0:3306->3306/tcp mysql
- 第3步,老机器:执行 docker save 导出镜像(记得带上repository和tag),语法参考:docker save -o 镜像包.tar 镜像名:tag
[root@192.168.4.231]# docker save -o /opt/mysql.20220413.tar mysql:5.7
- 第4步,老机器:建议将该容器停掉,免得迁移前后的数据不一致
[root@192.168.4.231]# docker ps -a | grep mysql
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da7c4b1a9d4f mysql:5.7 "docker-entrypoint.s…" 29 minutes ago Up 29 minutes 0.0.0.0:3306->3306/tcp mysql[root@192.168.4.231]# docker stop mysql
- 第5步,老机器:同步镜像文件及容器目录到新机器
[root@192.168.4.231]# scp -r -P1618 /opt/mysql.20220413.tar 192.168.4.232:/opt/
[root@192.168.4.231]# scp -r -P1618 /data/docker/mysql/* 192.168.4.232:/data/docker/mysql/
- 第6步,新机器:导入该容器所引用的镜像包.tar,语法参考:docker load -i 镜像包.tar
[root@192.168.4.232]# docker load -i /opt/mysql.20220413.tar[root@192.168.4.232]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 3f3447deacaa 12 days ago 455MB
- 第7步,新机器:启动容器,最好与老容器的启动命令一致
docker run --name mysql -v /data/docker/mysql/my.cnf:/etc/my.cnf -v /data/docker/mysql/opt:/opt -v /data/docker/mysql/log:/var/log/mysql -v /data/docker/mysql/var:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=z27SoKdj_JxnyvG8 -d mysql:5.7 --lower_case_table_names=1
- 第8步,新机器:确认一下数据
docker exec -it mysql /bin/bash -c 'mysql -uroot -pz27SoKdj_JxnyvG8 -e"show databases;"'
相关文章:
docker如何容器迁移(实战)
手把手教你如何做容器迁移 第一步准备数据 假设要迁移一个 mysql 服务(docker部署),由于数据库过大(超过50 GB),用mysqldump备份和还原则太过耗时,下面尝试拷贝目录的方式来迁移,详…...

Android kotlin序列化之Parcelable详解与使用(二)
一、介绍 注解序列化篇:Android kotlin序列化之Parcelize详解与使用_蜗牛、Z的博客-CSDN博客 通过上一篇注解序列化,我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题,注解虽好,但是存在一些问题。 一般在大型商业…...

C++ 类设计的实践与理解
前言 C代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。本文介绍了写好C代码需要遵循的最佳实践方法,并在最后提供了一个工具可以帮助我们分析C代码的健壮度。 1. 尽可能尝试使用新的C标准 到2023年,C已经走过了40多个年头。新…...

循环链表的创建
循环链表的介绍及创建(C语言代码实现) 点击打开在线编译器,边学边练 循环链表概念 对于单链表以及双向链表,其就像一个小巷,无论怎么样最终都能从一端走到另一端,然而循环链表则像一个有传送门的小巷&…...
如何让GPT的回答令人眼前一亮,不再刻板回复!
我们平常在使用GPT的时候,是否觉得它的回复太过于死板、官方化,特别是用于创作、写论文分析的时候,内容往往让读者提不起兴趣、没有吸引人的地方,甚至有些内容百度都可以搜到。 举个例子,如下图: 问GPT,AI…...

JMeter测试笔记(四):逻辑控制器
引言: 进行性能测试时,我们需要根据不同的情况来设置不同的执行流程,而逻辑控制器可以帮助我们实现这个目的。 在本文中,我们将深入了解JMeter中的逻辑控制器,包括简单控制器、循环控制器等,并学习如何正…...
【计算机组成原理·笔记】I/O接口
I/O接口 概述I/O接口的功能和组成 I/O接口的组成I/O接口的功能 I/O接口类型 按数据传送方式按功能灵活性按通用性按数据传输的控制方式 概述 I/O接口通常是指主机与I/O设备之间设置的硬件电路以及相应的软件控制,主机通过I/O接口和I/O设备相连接。 I/O接口的功…...

MIT6.024学习笔记(二)——图论(1)
学习不是为了竞争和战胜他人,而是为了更好地了解自己和世界。 - 达赖喇嘛 文章目录 图的相关概念涂色问题基础涂色方法(贪婪算法)证明 二分图匹配问题应用:稳定婚烟问题算法性质及其证明 图的相关概念 图的定义:一组&…...

饼状图使用属性时,使用驼峰命名法
饼状图是使用D3.js等JavaScript库来绘制的,而JavaScript中的属性名通常采用驼峰式命名法,即第一个单词的首字母小写,后面单词的首字母大写,例如fontSize、fontWeight等。而CSS中的属性名采用连字符命名法,即单词之间用…...
使用Spring Boot、Spring Security和Thymeleaf的整合示例
使用Spring Boot、Spring Security和Thymeleaf的整合示例 大纲: 创建Spring Boot项目 集成Thymeleaf作为模板引擎 配置Spring Security实现身份验证和授权 创建登录页面和主页 创建管理员页面和普通用户页面 实现用户角色和权限管理 详细步骤: 创建Sprin…...

Linux--ServerProgramming--(7)IPC
1.管道 2.信号量 2.1 概念 信号量 是一个计数器,用于实现进程间互斥和同步。 信号量的取值可以是任何自然数。 最简单的信号量是只能取 0 和 1 的变量,这也是信号量最常见的一种形式,叫做二进制信号量(Binary Semaphore&#…...
最优化理论-KKT定理的推导与实现
目录 一、引言 二、最优化问题的基本概念 三、KKT条件的引入 1. 梯度条件 2. 原始可行性条件 3. 对偶可行性条件 四、KKT定理的表述 五、KKT定理的证明 1. 构造拉格朗日函数 2. 构造拉格朗日对偶函数 3. 推导KKT条件 4. 解释KKT条件 六、KKT定理的应用 七、总结 …...

chatgpt赋能python:Python中引入其他包的指南
Python中引入其他包的指南 Python是一种流行的编程语言,拥有丰富的开源软件包和库。许多Python程序将使用其他包来增强其功能。在本文中,我们将探讨如何在Python项目中使用和引入其他包。 什么是Python包和库? Python包是一组可重复使用的…...

设计模式-组合模式
应用场景 实现规则匹配的逻辑 比如> <,同时支持 and or 多个条件组合 新增一个条件就增加一个实现类 说明 对于这种需要实现规则匹配的逻辑,可以考虑使用策略模式。策略模式可以将不同的算法封装成不同的策略类,让它们可以相互替换,…...

DMBOK知识梳理for CDGA/CDGP——第四章 数据架构(附常考知识点)
关 注ghz“大数据食铁兽”,回复“知识点”获取《DMBOK知识梳理for CDGA/CDGP》常考知识点(第四章 数据架构) 第四章 数据架构 第四章是CDGA|CDGP考试的重点考核章节之一,分值占比高,知识点比较密集,重点…...

MyBatisPlus总结(1.0)
MyBatis-Plus MyBatis-Plus介绍 MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生 特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影…...

职场老油条表示真干不过,部门新来的00后测试员已把我卷崩溃,想离职了...
在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&#x…...

【每日挠头算法题(1)】——旋转字符串|亲密字符串
文章目录 一、旋转字符串思路1思路2 二、亲密字符串思路 总结 一、旋转字符串 点我直达终点~ 思路1 前提:如果s串和goal串长度不等,则goal串不可能是s串旋转得来,直接返回false; 通过观察,可以发现每旋转一次&#…...

什么是 tokens,ChatGPT里面的Tokens如何计数?
什么是 tokens,ChatGPT里面的Tokens如何计数? 什么是 tokens? Tokens 可以被认为是词语的片段。在 API 处理提示之前,输入会被分解成 tokens。这些 tokens 并不会精确地在单词的开始或结束处切分 - tokens 可以包含尾随的空格甚…...

工业镜头分类、相关参数含义
一、工业镜头参数 1、焦距/后焦距 焦距是像方主面到像方焦点的距离。后焦距指光线离开镜头最后一片镜片表面到sensor感光面的距离,如8mm,16mm,25mm等; 焦距的大小决定着视角大小,焦距数值小,视角大&#…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...