Docker基础(八)—容器卷

2023-10-27

什么是数据卷?

数据卷 (Data Volumes )是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于 Linux 中的 mount 行为。

数据卷可以提供很多有用的特性

数据卷可以在容器之间共事和重用,容器间传递数据将变得高效与方便;

对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;

对数据卷的更新不会影响镜像,解摘开应用和数据;

卷会一直存在 ,直到没有容器使用,可以安 地卸载它

数据卷的存在,绕开了文件联合系统,使得数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

如何创建?

Docker 提供了 volume 子命令来管理数据卷

 docker volume create -d 指定位置

宿主vs容器之间映射添加容器卷 

docker run -it -v /宿主机目录:/容器内目录 centos /bin/bash

 此时,我们现在已经进入到了Centos的容器里了,pwd查看当前的目录为根目录下

我们之前已经说过了,通过容器卷的创建,我们可以使得容器和主机之间的的数据进行同步访问,也就是说,在容器里创建的文件数据在主机也可以访问得到,相反,主机里创建的文件数据在容器里也可以访问得到。

在容器里创建文件test.txt

在主机里查看

 

可以发现,我们在主机下/tem/host_data下的目录可以看到,我们在容器下创建的文件

在主机创建Test.txt文件并追加内容

 在容器里查看

 可以发现,我们在主机里创建的文件及数据内容,全部被同步了容器里,并且能进行访问和读取

 如果,我们将容器停掉,然后在主机上创建一个文件,重新启动容器,那么我门创建的文件还会同步到容器里吗?

答案是可以的

停掉此时的容器

 在主机里创建文件aa.txt

 重现启动容器并进入容器

 查看文件

没有问题,可以很清楚看到aa.txt文件,说明,即使关掉容器,重新启动,容器卷也会自动同步文件的数据信息

 如何删除数据卷的绑定

如果 删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式使用 docker rm -v 令来指定同时删除关联的容器

docker rm -v 容器ID

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker基础(八)—容器卷 的相关文章

随机推荐