容器运行时会产生一些数据,在容器内部不便于管理,而且容器删除后数据也会被删除。数据卷可以将容器中的动态数据直接存储到宿主机上,独立于容器。
挂载自定义目录
docker run -id -v /root/data1:/root openjdk:8
- -v:指数据卷,用于存储数据。
- /root/data1:/root:挂载宿主机的/root/data1目录为数据卷,对应容器的/root目录。在容器中操作/root目录内容时,实际会反映到数据卷,反过来也是一样。
- 挂载多个数据卷,可以使用多次-v。
- 即使容器被删除,数据卷中的数据仍然保存。
- 多个容器可以挂载到同一个数据卷,实现数据共享。
上面自定义数据卷目录,数量多了以后,不便于管理。使用volume有利于实现统一管理。如下,这里不再以/目录开头,而是以一个名字指数据卷v1,这样创建的数据卷统一保存在/var/lib/docker/volumes
docker run -id -v v1:/root openjdk:8
- docker volume create v1:创建数据卷v1。上面的命名执行时,如果没有创建v1,会自动创建。
- docker volume ls:查看数据卷。
- docker volume inspect v1:查看v1卷详情,Mountpoint是其数据存储目录。
- docker volume rm v1:删除v1卷,必须先删除挂载卷的容器,才能删除卷。
- docker volume prune:清理所有没有被挂载的卷。