文章目录
目录
1 . 什么是存储卷?
存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上 的某一目录建立绑定关系。这就意味着,当我们在容器中的这个目录下写入数据时, 容器会将其内容直接写入到宿主机上与此容器建立了绑定关系的目录。 在宿主机上的这个与容器形成绑定关系的目录被称作存储卷。卷的本质是文件或者目 录,它可以绕过默认的联合文件系统,直接以文件或目录的形式存在于宿主机上。 宿主机的/data/web 目录与容器中的/container/data/web 目录绑定关系,然后容器中的 进程向这个目录中写数据时,是直接写在宿主机的目录上的,绕过容器文件系统与宿 主机的文件系统建立关联关系,使得可以在宿主机和容器内共享数据库内容,让容器 直接访问宿主机中的内容,也可以宿主机向容器写入内容,容器和宿主机的数据读写 是同步的。
一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。
这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了
2. 存储卷分类
volume docker 管理卷: 默认映射到宿主机的/var/lib/docker/volumes 目录 下,只需要在容器内指定容器的挂载点是什么,而被绑定宿主机下的那个目录,是由 容器引擎 daemon 自行创建一个空的目录,或者使用一个已经存在的目录,与存储卷 建立存储关系,这种方式极大解脱用户在使用卷时的耦合关系,缺陷是用户无法指定 那些使用目录,临时存储比较适合;
bind mount 绑定数据卷: 映射到宿主机指定路径下,在宿主机上的路径要人工的 指定一个特定的路径,在容器中也需要指定一个特定的路径,两个已知的路径建立关 联关系
tmpfs mount 临时数据卷: 映射到于宿主机内存中,一旦容器停止运行,tmpfs mounts 会被移除,数据就会丢失,用于高性能的临时数据存储。
3. 命令
创建卷
方式一: Volume 命令操作
命令 | 作用 |
docker volume create | 创建存储卷 |
docker volume inspect | 显示存储卷详细信息 |
docker volume ls | 列出存储卷 |
docker volume prune | 清理所有无用数据卷 |
docker volume rm | 删除卷,使用中的无法 删除 |
方式二:-v 或者--mount 指定
docker run -v name:directory[:options] .........
- 第一个参数:卷名称
- 第二个参数:卷映射到容器的目录
- 第三个参数:选项,如 ro 表示 readonly
示例:
Shell
docker run -d --name devtest -v myvol2:/app nginx:latest
总结
以上就是这篇博客的主要内容了,大家多多理解,下一篇博客见!