容器数据卷使用
什么是容器数据卷
容器之间可以有一个数据共享技术,使容器中产生的数据,同步到本地
卷的设计目的就是数据的持久化,完全独立于容器的生命周期,因此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连接测试
![image]()
连接成功 - 查看本地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中新建一数据库
![image]()
![image]()
- 查看本地mysql的data目录

7. 查看容器的元数据,观察挂载节点Mounts数据卷的信息
[root@iZbp1htnoa70qlle394f3wZ data]# docker inspect d7102c75a0fa # 查看容器元数据





浙公网安备 33010602011771号