背景
在使用容器时,很多时候需要实现容器间或者是容器和宿主机之间的数据共享,需要在容器结束的时候数据依然可以访问,这也就是Docker的数据持久化。实现Docker数据持久化的方式有三种,使用volumes数据卷,使用mounts挂载和使用tmpfs挂载存储到宿主机系统的内存中。本文主要介绍使用volumes数据卷来实现Docker的数据持久化。
数据卷的管理
docker volume create vol # 创建一个数据卷
docker volume ls # 查看所有容器卷
docker volume inspect vol # 查看数据卷vol的详细信息
容器结合数据卷
在使用数据卷的时候,只需要在docker run命令后面增加-v配置即可,具体方法如下
-v, --volume list Bind mount a volume
--volume-driver string Optional volume driver for the container
--volumes-from list Mount volumes from the specified container(s)
指定路径挂载
参考docker容器端口的配置,在对数据卷进行挂载的时候,-v 后的方式为宿主机目录:容器目录
匿名挂载和具名挂载
匿名挂载
-v 容器内目录
在使用这种方式进行挂载的时候,对自动生成一个文件名,在宿主机的指定位置生成一个文件夹来进行数据的同步
具名挂载
-v 卷名:容器内目录
这里可以看到在上面提到的两种挂载方式,都没有直接指定宿主机中的目录,在这个情况下,docker所有的容器卷都可以在目录 /var/lib/docker/volumes
中找到。
补充
在挂载配置后面还可以增加 :ro
或者是:rw
,这个表示的是当前容器对这个目录的一个操作权限,分别对应的是read only和read write。