数据卷 Volume

基本概念

是什么

数据卷相当于是容器的虚拟文件系统和主机的真实文件系统之间的一个桥梁,建立数据卷就相当于是打通了容器主机之间的文件交互通道,可以让容器运行时所产生的数据变更被保存到主机中,能够更方便的对数据进行备份以及保护。

为什么需要

当我们在容器中运行一些关键的应用,如MySQL、Redis等服务,其中都会存储着一些关键数据,这些数据是你希望即使删除容器也不应该被删除的,此时我们便需要用到数据卷了。

绑定方式

匿名绑定

在启动容器时直接使用-v /container dir即可完成匿名绑定,匿名绑定的方式将在dockervolumes目录下生成一个字符串作为目录名,且指定的/container dir中的文件或目录会被保存在该处,匿名绑定的 volume在容器被删除的时候,数据卷也会被删除

docker run --rm -d -p 80:80 -v <容器内想要被共享的目录>

*匿名绑定方式由于不知道名称,因此如果需要查看数据卷在主机的哪个位置,需要使用docker inspect -f '{{index.Mounts 0}} 'container_id 来查看
例:
img
img
如果出现以下报错,重启docker即可
img

具名绑定

同样是启动容器时绑定一个数据卷,不同的是可以为该数据卷起个名字-v volume-name:container dir,通过名字你可以快速的定位并管理这些volume。

docker run --rm -d -p 80:80 -v <数据卷名称:容器内路径> <容器名称>

例:
img

Bind Mount

绑定并加载主机的某个文件目录到容器中,这种方式是平常最常用的。这种绑定方式与前面两种一样,也是在容器启动时使用-v host dir:container_dir的格式来完成映射。

docker run --rm -d -p 80:80 -v <宿主机路径:容器内路径> <容器名称>

例:
img

查看绑定的数据卷

docker volume ls

删除

  1. 强制删除容器,不删除数据卷
docker rm -f <容器名称>

例:
img
2. 删除数据卷

docker volume rm <数据卷名称>

例:
img

数据卷管理

docker volume

img

posted @ 2023-05-17 16:04  小肚腩吖  阅读(17)  评论(0编辑  收藏  举报