六、Docker容器数据卷详细讲解

本文介绍了Docker容器数据卷的概念和作用,强调了其在数据持久化和容器间数据共享方面的功能。通过实例演示了如何创建和挂载数据卷,确保即使容器被删除,数据也能保持不变。并展示了通过`docker inspect`命令检查挂载情况的方法。
摘要由CSDN通过智能技术生成

一、什么是容器数据卷?

为什么Docker需要容器数据卷?因为当我们将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够持久化的!就好比,你安装一个MySQL,结果不小心把容器删了,那岂不是就相当于删库跑路了,这显然是不允许发生的事情!
在这里插入图片描述
为了能保存数据在Docker中我们就可以使用卷!让数据 挂载 到我们本地!这样数据就不会因为容器删除而丢失了!
在这里插入图片描述

容器卷的作用:
卷就是目录或者文件,存在一个或者多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过 Union File System , 提供一些用于持续存储或共享数据的特性:卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

容器卷的特点:

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

所以:总结一句话: 就是容器的持久化,以及容器间的继承和数据共享!

二、使用数据卷

1、挂载
# 命令
docker run -it -v 宿主机绝对路径目录:容器内目录 镜像名
# 测试
[root@TR ~]# ll
total 1052
drwxr-xr-x 9 1001 1001    4096 Nov 29 20:54 nginx-1.21.4
-rw-r--r-- 1 root root 1070260 Nov 29 20:42 nginx-1.21.4.tar.gz
# 1、创建一个测试文件夹“pangtaiyi”
[root@TR ~]# mkdir pangtaiyi
[root@TR ~]# ll
total 1056
drwxr-xr-x 9 1001 1001    4096 Nov 29 20:54 nginx-1.21.4
-rw-r--r-- 1 root root 1070260 Nov 29 20:42 nginx-1.21.4.tar.gz
drwxr-xr-x 2 root root    4096 Dec  1 21:40 pangtaiyi

# 2、运行Centos 镜像, 并将容器中的 “/root/pangtaiyi” 目录和本地的“/root/pangtaiyi”目录关联起来
[root@TR ~]# docker run -it -v /root/pangtaiyi:/root/pangtaiyi centos /bin/bash
[root@2cb343981d5b /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@2cb343981d5b /]# cd root
[root@2cb343981d5b ~]# ls
anaconda-ks.cfg  anaconda-post.log  original-ks.cfg  pangtaiyi
[root@2cb343981d5b ~]# cd pangtaiyi

# 3、在 “pangtaiyi”文件夹下创建一个“pangtaiyi.txt” 文件
[root@2cb343981d5b pangtaiyi]# touch pangtaiyi.txt
[root@2cb343981d5b pangtaiyi]# ls
pangtaiyi.txt

# 4、退出容器, 看下本地关联的目录下是否有文件生成
[root@2cb343981d5b pangtaiyi]# [root@TR ~]# 
[root@TR ~]# cd pangtaiyi
[root@TR pangtaiyi]# ll
total 0
-rw-r--r-- 1 root root 0 Dec  1 21:42 pangtaiyi.txt
2、查询挂载情况
# 语法 “docker inspect 容器ID”
[root@TR ~]# docker inspect 2cb343981d5b
[
    {
        "Id": "2cb343981d5b4181869b807b51c08af487534333073013186ee4ed540f23b3d5",
        "Created": "2021-12-01T13:41:54.89582656Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 1850114,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-12-01T13:41:55.330564955Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        ..................
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/root/pangtaiyi",
                "Destination": "/root/pangtaiyi",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        ........
    }
]

可以看到在 Mounts 中, 有我们之前挂载的两个路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

胖太乙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值