容器数据卷使用

什么是容器数据卷

容器之间可以有一个数据共享技术,使容器中产生的数据,同步到本地
卷的设计目的就是数据的持久化,完全独立于容器的生命周期,因此Docker不会在容器删除时,删除其挂载的数据卷。

数据卷的特点:

  1. 数据卷可以在容器之间共享或重用数据
  2. 卷中的更改可以直接生效
  3. 数据卷中的更改不会包含到镜像的更新中
  4. 数据卷的生命周期一直持续到没有容器使用它为止

简单的使用

运行容器时 指定挂载数据卷命令:

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文件夹已同步

image
更改luoking.java文件内容

image

利用数据卷,部署mysql

  1. 安装mysql
docker pull mysql:5.7
  1. 启动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
  1. 使用sqlyong连接测试
    image
    连接成功
  2. 查看本地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
  1. 在本地sqlyong中新建一数据库
    image
    image
  2. 查看本地mysql的data目录

image
7. 查看容器的元数据,观察挂载节点Mounts数据卷的信息

[root@iZbp1htnoa70qlle394f3wZ data]# docker inspect d7102c75a0fa # 查看容器元数据

image

posted @   小罗要有出息  阅读(32)  评论(0编辑  收藏  举报
编辑推荐:
· 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语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示