Docker容器数据卷

Docker容器数据卷是什么

先来看看Docker的理念:

  • 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的。
  • 容器之间希望有可能共享数据。

Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。

为了能保存数据在docker中我们使用卷。(一句话:就是想在docker和宿主机之间实现数据共享,数据持久化。类似于redis中的RDB、AOF)

Docker容器数据卷能干什么

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。(实现容器的持久化、容器之间的继承 + 数据共享)

特点:

  • 数据卷可在容器之间共享或重用数据
  • 卷中的更改可以直接生效
  • 数据卷中的更改不会包含在镜像的更新中
  • 数据卷的生命周期一直持续到没有容器使用它为止

Docker容器卷和宿主机互联

可以将docker容器中的数据保存到宿主机的磁盘中如下

docker run -it --privileged=true -v 宿主机绝对路经目录:/容器内目录 镜像名      (默认可读可写)
docker run -it --privileged=true -v 宿主机绝对路经目录:/容器内目录:ro 镜像名   (只能可读)  ro:read only
docker run -it --privileged=true -v 宿主机绝对路经目录:/容器内目录:wo 镜像名   (只能可写)  wo:write only

参数解释:

--privileged=true:打开root的权限    

-v:可以指定多个路径 (表示绑定一组路径)

例1:

sudo docker run -it --privileged=true --name=u1 -v /tmp/host1_data:/tmp/docker1_data ubuntu /bin/bash

说明:如果宿主机和docker中没有指定的各自的文件夹,执行命令后会自动创建相应的文件夹。

运行一个带容器卷存储功能的容器实例的特点:

  • 数据卷可在容器之间共享或重用数据
  • 卷中的更改可以直接生效。爽(实时)
  • 数据卷中的更改不会包含在镜像的更新中
  • 数据卷的生命周期一直此需要没有容器使用它为止
实例操作
  • 创建一个名字为u1的,带容器卷存储功能的容器实例
sudo docker run -it --privileged=true --name=u1 -v /tmp/host_data:/tmp/docker_data ubuntu /bin/bash

在这里插入图片描述
从上图可以看到进入到了新创建的容器中

  • 进入到容器中/tmp/docker_data目录下创建一个文档
cd /tmp/docker_data  #进入到目标目录
touch docker.txt     #创建名为docker.txt的文件
  • 进入到宿主机/tmp/host_data目录下查看
cd /tmp/host_data   #进入到目标目录
ll                  #在该目录下查看文件

在这里插入图片描述
可以看到在在容器中创建的docker.txt同步到了宿主机的/tmp/host_data文件夹中;
同理,在宿主机该文件夹中创建host.txt文件,也会同步到容器的/tmp/docker_data文件夹中,下图进行验证

创建host.txt文件:
在这里插入图片描述
在容器中查看:
在这里插入图片描述
从上图可以看到在宿主机创建的文件也同步到了容器中。

Docker容器卷的继承和共享

docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu

创建了一个名为u2的容器,并且共享u1的容器数据卷,如下图所示
在创建u2容器后直接进入/tmp/docker_data文件夹,可以看到和容器u1中数据卷的数据相同,达到继承和共享的目的。
在这里插入图片描述
以上如有错误欢迎指正,如果帮到您请点赞加收藏哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xp_fangfei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值