容器数据卷使用

什么是容器数据卷

容器之间可以有一个数据共享技术,使容器中产生的数据,同步到本地
卷的设计目的就是数据的持久化,完全独立于容器的生命周期,因此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 @ 2022-04-21 18:30  小罗要有出息  阅读(37)  评论(0)    收藏  举报