Docker数据管理,防止删库跑路?_如何保证docker数据不丢失

78 阅读4分钟
  • docker volume ls:查看宿主机上容器所有数据卷挂载出来的信息。
    在这里插入图片描述
  • docker volume rm xxxx(数据卷名称):删除指定的数据卷挂载信息。
  • docker volume inspect xxxx(数据卷名称):查看卷的信息信息。

在这里插入图片描述

3️⃣匿名挂载

定义:据卷挂载出来路径自动产生,其中名称为随机产生的ID。
在这里插入图片描述

命令:
docker run -it -v /路径 --name xxx(容器名) yyy(镜像名称)。其中 /路径为容器内数据卷的位置。

举例:
docker run -it -v /Data/prin --name prin/centos centos。将容器内数据数据卷/Data/prin,挂载到宿主机/var/lib/docker/volume/<id>/_data下。

4️⃣具名挂载

定义:
数据卷挂载出来的名称或者绝对路径由由创建者指定。
情况1:给出容器的名称而代替随机产生的ID。
概述:宿主机映射出来的目录中本来为随机的,现在替换为具体的名称。
在这里插入图片描述

命令:
docker run -it -v xxx(名称):/路径 --name xxx(容器名) yyy(镜像名称)

举例:
docker run -it -v prin_centos:/Data/prin --name prin/centos centos。将容器内数据数据卷/Data/prin,挂载到宿主机/var/lib/docker/volume/prin_centos/_data下。

情况2:给出映射的绝对路径。
概述:将数据卷内的信息挂载到给出的绝对路径下。
在这里插入图片描述

命令:
docker run -it -v /路径1:/路径2 --name xxx(容器名) yyy(镜像名称)

举例:
docker run -it -v /Docker_data/centos:/Data/prin --name prin/centos centos。将容器内数据数据卷/Data/prin,挂载到宿主机/Docker_data/centos下。

5️⃣权限控制

概述:可以设置容器对数据卷为只读(默认是读写),宿主机为读写。
在这里插入图片描述

命令:
docker run -it -v /Docker_data/Centos(具体路径):/Date/prin:ro(仅读) --name prin/centos(容器名) centos。其中容器内为只读目录,宿主机为读写目录。

6️⃣同步卷

概述:将多个容器的数据卷和宿主机的同一个目录进行同步。
在这里插入图片描述

方法一:
原理:在容器run的时候,设置挂载为同一个目录。
容器1:docker run -it -v /Docker_data/Centos/:/Data/prin --name prin_centos-1 centos
容器2:docker run -it -v /Docker_data/Centos/:/Data/prin --name prin_centos-2 centos

方法二:
原理:使用–volume-from同步卷。
命令:
docker run it --name prin-centos-1 --volumes-from prin-centos centos。prin-centos-1容器直接使用prin-centos的数据卷。

7️⃣容器恢复

当容器被删除后,其数据还保存在宿主机挂载的目录下,后续重新通过镜像生成容器的时候,再将数据卷挂载在这个目录下即可。

8️⃣可以这样理解

卷:容器的持久化和同步操作,实现容器间数据共享,通过卷将dockers中的数据同步到本地,容器内将目录自动同步到Linux中——双向绑定。防止删除docker导致数据丢失。

复习举例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述