一、为什么要用数据卷
因为容器和数据耦合了,试想一下,容器内修改文件是很不方便的,并且就算我们修改了,那么也只能对这一个容器生效,如果我们又想要创建一个容器并且和和刚才的容器进行一样的配置,那我们是不是又得重新来一遍?这样岂不是太麻烦了
二、什么是数据卷
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。
Docker中的数据卷(Volume)是一个可供一个或多个容器使用的特殊目录,它绕过默认的联合文件系统(Union File System),以正常的文件或目录的形式存在于宿主机上。数据卷的作用主要在于数据的持久化和共享。
首先,数据卷能够让容器之间的数据共享和重用,因为它们独立于容器生命周期,不会随着容器的删除而消失。其次,对数据卷的修改会立即生效,这使得数据的操作更为便捷。此外,数据卷的更新不会影响镜像,这在一定程度上保护了镜像的完整性。
数据卷的设计目的就是数据的持久化,在容器重新启动或者新的容器被创建时,数据卷可以保证数据的同步,实现数据的持久化存储。
在宿主机进行修改时会在容器内立即生效,同时,在容器内对文件的修改在宿主机文件系统中也可以立即看到
当我们创建一个新的容器时,也可以使用之前的数据卷
三、常用命令
数据卷命令是一个二级命令,一级是docker volume
,二级命令才是真正的数据卷命令
docker volume [COMMAND]
create
:创建一个volume
inspect
:显示一个或多个volume的信息
ls
:列出所有的volume
prune
:删除未使用的volume
rm
:删除一个或多个指定的volume
四、实例
1.创建数据卷
docker volume create html
2.查看所有数据卷
docker volume ls
3.查看数据卷详细信息
docker volume inspect html
可以看到 html 数据卷的在宿主机上的目录为:
/var/lib/docker/volumes/html/_data
4.删除未使用的数据卷
docker volume prune
这里我的 html 数据卷没有使用,但是不知道为什么没有删除掉。(希望懂的佬可以为我解答一下)
5.删除指定的数据卷
docker volume rm html