上一节我们在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了数据库。现在容器已经删除,今天将演示在 docker2 中重新使用这个卷。
在 dokcer2 上执行如下命令,启动 MySQL 容器:
docker run --name mydb_on_docker2 -v mysqldata:/var/lib/mysql -d mysql
新容器也使用相同的卷 mysqldata
,不过这次不需要指定环境变量 MYSQL_ROOT_PASSWORD
,因为密码已经保存到 mysqldata
里面了。
现在 Rex-Ray volume mysqldata
已经挂载到 docker2:
同样可以按照之前的方法用 docker volume inspect
和 docker inspect
查看具体的 mount 信息,这里不再赘述。
按照如下步骤验证 MySQL 的数据:
① 进入到容器 mydb_on_docker2
。
② 登录数据库,密码与 mydb_on_docker1
一致。
③ 切换到数据库 mysql
。
④ 确认之前由 mydb_on_docker1
创建的表和写入的数据完好无损。
Rex-Ray 可以提供跨主机的 volume,其生命周期不依赖 Docker Host 和容器,是 stateful 容器理想的数据存储方式。
如何使用其他 storage provider 的 volume driver,部署和配置 storage provider 会有所不同,不过 Docker 在使用 volume 的方式都是一样的:
-
通过
docker volume create --driver
创建 volume。 -
创建容器时用
-v
指定上一步创建的 volume。
Docker 的数据管理就讨论到这里,下一节开始学习容器的监控方案。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义