系列文章目录
本系列主要分为以下六大部分,正在更新中,尽请期待!
- 『 云原生·生之门』
- 『 云原生·前置知识』
- 『 云原生·Docker』
- 『 云原生·Kubernetes』
- 『 云原生·KubeSphere』
- 『 云原生·DevOps』
🚩点击关注本专栏
提示:已经更新的或正在更新的文章前面打勾了哈!
文章目录
前言
Docker 中的数据卷,它能够实现宿主机与容器之间的文件共享,它的好处在于我们对宿主机的文件进行修改将直接影响容器,而无需再将宿主机的文件再复制到容器中。
一、初识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 /宿主机绝对路径目录:/容器内目录 镜像名
二、Docker容器数据卷能干嘛?
我们将应用和运行的环境打包成镜像,run 后形成容器实例运行,但是如果我们希望数据能够持久化 ,那么我们就需要使用数据卷了。
Docker 容器产生的数据,如果不使用容器数据源,当容器实例删除之后,容器内的数据自然就丢失了,为了解决这个问题,我们使用了容器的数据卷功能。
三、Docker容器数据卷的特点
容器数据卷有以下特点:
- 数据卷可以在容器之间共享或重用数据;
- 数据卷中的更改可以实时生效;
- 数据卷中的更改不会包含在镜像的更新中;
- 数据卷的生命周期一直持续到没有容器使用它为止;
四、常用命令
- 查看数据卷
docker volume ls
- 查看某个数据卷的细节
docker volume inspect 卷名
- 创建数据卷
docker volume create 卷名
- 删除数据卷
# 删除未使用的volumedocker volume prune
# 删除一个或多个指定的volumedocker volumen rm 卷名
看看本专栏文章有哪些吧!
本系列文章目录:
- 『 云原生·生之门』
- 『 云原生·前置知识』
- 『 云原生·Docker』
- 『 云原生·Kubernetes』
- 『 云原生·KubeSphere』
- 『 云原生·DevOps』
🚩点击关注本专栏
可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!
总结
在创建数据卷后,容器删除后,数据卷都不会被删除。
版权归原作者 abcccccccccccccccode 所有, 如有侵权,请联系我们删除。