容器数据卷使用
什么是容器数据卷
容器之间可以有一个数据共享技术,使容器中产生的数据,同步到本地
卷的设计目的就是数据的持久化,完全独立于容器的生命周期,因此Docker不会在容器删除时,删除其挂载的数据卷。
数据卷的特点:
- 数据卷可以在容器之间共享或重用数据
- 卷中的更改可以直接生效
- 数据卷中的更改不会包含到镜像的更新中
- 数据卷的生命周期一直持续到没有容器使用它为止
简单的使用
运行容器时 指定挂载数据卷命令:
docker run -it -v 主机目录:容器目录 容器ID #测试 [root@iZbp1htnoa70qlle394f3wZ ~]# docker run -it -v /home/test:/home centos /bin/bash [root@051085c8e090 /]# cd home #容器之中的home文件夹 [root@051085c8e090 home]# ls [root@051085c8e090 home]# [root@iZbp1htnoa70qlle394f3wZ /]# cd /home #主机home文件夹 [root@iZbp1htnoa70qlle394f3wZ home]# ls luo.java test #test文件夹已同步
更改luoking.java文件内容
利用数据卷,部署mysql
- 安装mysql
docker pull mysql:5.7
- 启动mysql (mysql 一开始需要设置账号和密码 -e MYSQL_ROOT_PASSWORD ,-v挂载目录)
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql01 c20987f18b1
- 使用sqlyong连接测试
连接成功 - 查看本地home目录
[root@iZbp1htnoa70qlle394f3wZ ~]# cd /home [root@iZbp1htnoa70qlle394f3wZ home]# ls luo.java mysql test [root@iZbp1htnoa70qlle394f3wZ home]# cd mysql [root@iZbp1htnoa70qlle394f3wZ mysql]# ls conf data [root@iZbp1htnoa70qlle394f3wZ mysql]# cd data [root@iZbp1htnoa70qlle394f3wZ data]# ls auto.cnf client-key.pem ib_logfile1 private_key.pem sys ca-key.pem ib_buffer_pool ibtmp1 public_key.pem ca.pem ibdata1 mysql server-cert.pem client-cert.pem ib_logfile0 performance_schema server-key.pem
- 在本地sqlyong中新建一数据库
- 查看本地mysql的data目录
7. 查看容器的元数据,观察挂载节点Mounts数据卷的信息
[root@iZbp1htnoa70qlle394f3wZ data]# docker inspect d7102c75a0fa # 查看容器元数据
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决