0
点赞
收藏
分享

微信扫一扫

『 云原生·Docker』Docker容器数据卷

君之言之 2022-12-02 阅读 77

系列文章目录

本系列主要分为以下六大部分,正在更新中,尽请期待!

  • 『 云原生·生之门』
  • 『 云原生·前置知识』
  • 『 云原生·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容器数据卷的特点

容器数据卷有以下特点:

  1. 数据卷可以在容器之间共享重用数据;
  2. 数据卷中的更改可以实时生效
  3. 数据卷中的更改不会包含在镜像的更新中;
  4. 数据卷的生命周期一直持续到没有容器使用它为止

四、常用命令

  • 查看数据卷
docker volume ls
  • 查看某个数据卷的细节
docker volume inspect 卷名
  • 创建数据卷
docker volume create 卷名
  • 删除数据卷
# 删除未使用的volume
docker volume prune

# 删除一个或多个指定的volume
docker volumen rm 卷名

看看本专栏文章有哪些吧!

本系列文章目录:

  • 『 云原生·生之门』
  • 『 云原生·前置知识』
  • 『 云原生·Docker』
  • 『 云原生·Kubernetes』
  • 『 云原生·KubeSphere』
  • 『 云原生·DevOps』

🚩点击关注本专栏

可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!

总结

在创建数据卷后,容器删除后,数据卷都不会被删除。

举报

相关推荐

0 条评论