一. 前言
上一篇介绍到如何构建镜像以及镜像管理,不知道大家学到现在有没有疑问?比如我运行web服务产生的日志,我如何在宿主机上看到?我想安装mysql或者redis等,配置文件如何配置,可以进到容器去设置,但是容器出现问题或者采重启怎么办呢?种种疑问都说明一个问题--数据共享和持久化
接下来我们就看看Docker和宿主机如何数据共享和持久化?
二. 数据卷
在Docker的使用过程中往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,所以这就涉及到Docker容器的数据操作。容器中数据管理主要有两种方式:数据卷和数据卷容器。
2.1 数据卷
数据卷是一个特殊的目录,它将主机目录直接映射进容器。可供一个或多个容器使用。
数据卷设计的目的就是为了 数据的持久化,它完全独立与容器的生命周期。因此,容器删除时,不会删除其挂载的数据卷,也不会存在类似的垃圾机制对容器存在的数据卷进行处理。
数据卷的特性:
- 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中
- 数据卷可以在容器之间共享和重用
- 可以对数据卷里的内容直接修改,修改回马上生效,无论是容器内操作还是本地操作
- 对数据卷的更新不会影响镜像的更新
- 数据卷会一直存在,即使挂载数据卷的容器已经被删除
2.1.1 创建一个数据卷
使用命令创建一个test-vol
docker volume create test-vol
![07939d92394dbe9c79572f6a6c5f5c35.png](https://i-blog.csdnimg.cn/blog_migrate/75ca2b8622b64521fe9f4595bbd2066c.jpeg)
2.1.2 查看所有的数据卷
docker volume ls
![b2acf4bd89b60c8e792840c81bbbd609.png](https://i-blog.csdnimg.cn/blog_migrate/02b45cdcb19ebbbe44385881d752fd27.jpeg)
2.1.3 查看具体数据卷的信息
docker volume inspect test-vol