本系列主要分为以下六大部分,正在更新中,尽请期待!
点击关注本专栏
提示:已经更新的或正在更新的文章前面打勾了哈!
Docker 中的数据卷,它能够实现宿主机与容器之间的文件共享,它的好处在于我们对宿主机的文件进行修改将直接影响容器,而无需再将宿主机的文件再复制到容器中。
所谓的卷就是目录或文件,存在于一个或多个容器中,由 Docker 挂载到容器,但是不属于联合文件系统(UnioaunFS),因此能够绕过 UnionFS 提供一些用于持续存储或共享数据的特性。
数据(volume
)的设计目的就是 数据的持久化 ,完全独立于容器的生命周期,因此 Docker 不会在容器删除的时候删除其挂载的容器数据卷。其实就是将 Docker 容器内的数据保存进宿主机的磁盘中。
运行容器,指定挂载数据卷命令:
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
注意:因为 CentOS 7 安全模块会之前的系统版本要强,不安全的会先禁止掉,目录挂载默认被认为是不安全的行为。如果出现 cannot open directory .: Permission denied
,解决方法就是在挂载目录的时候添加 –privileged=true
参数即可 ,扩大容器的全局解决挂载目录没有权限的问题,即用了该参数,容器内的 root 就拥有了外部主机的真正的 root 权限;否则,容器内的 root 只是外部主机的一个普通用户。 如下:
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
我们将应用和运行的环境打包成镜像,run 后形成容器实例运行,但是如果我们希望数据能够持久化 ,那么我们就需要使用数据卷了。
Docker 容器产生的数据,如果不使用容器数据源,当容器实例删除之后,容器内的数据自然就丢失了,为了解决这个问题,我们使用了容器的数据卷功能。
容器数据卷有以下特点:
docker volume ls
docker volume inspect 卷名
docker volume create 卷名
# 删除未使用的volume
docker volume prune
# 删除一个或多个指定的volume
docker volumen rm 卷名
看看本专栏文章有哪些吧!
本系列文章目录:
点击关注本专栏
可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!
在创建数据卷后,容器删除后,数据卷都不会被删除。