Docker数据卷

本文详细介绍了Docker中数据卷的管理,包括创建、查看、删除和挂载数据卷,以及如何通过数据卷容器实现数据共享和备份恢复。通过数据卷,可以实现容器间的高效数据传递和持久化,确保数据在容器重启或删除后仍然保留。
摘要由CSDN通过智能技术生成

目录

前言

一、容器中的管理数据

1、方式

2、数据卷

3、数据卷容器

二、数据卷

1、创建数据卷

2、查看信息

2.1  列出已知的所有卷

2.2  显示一个或多个卷上的详细信息 

2.3  查看 /var/lib/docker/volumes路径下,会发现所创建的数据卷

3、 删除数据卷

4、 挂载数据卷

三、数据卷容器

1、创建数据卷容器

2、查看数据卷

3、启动一个挂载数据卷的容器

4、查看容器挂载的数据卷信息

5、进入容器修改文件,删掉容器,起一个新容器,文件仍在

6、多个容器挂载相同数据卷容器

四、数据卷容器的备份、恢复 

1、 备份

2、恢复

总结


前言

Docker 数据管理在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作。

一、容器中的管理数据

1、方式

数据卷 Data Volumes 容器内数据直接映射到本地主机环境;
数据卷容器(Data Volume Containers 使用特定容器维护数据卷;

2、数据卷

数据卷就是在宿主中可以在容器之间进行共享和重用的一系列和文件和文件夹,通过docker run -v命令可以将数据卷挂载到对应的容器目录空间,进行文件读取,容器卷特性如下

        * 数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便

        * 对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作

        * 对数据卷的更新不会影响镜像,解耦了应用和数据

        * 卷会一直存在,直到没有容器使用,可以安全地卸载它

3、数据卷容器

已经存在一个挂载了数据卷的容器;由于数据卷在容器之前是可以共享的,所以此时如果存在其他容器通过docker run --volumes-from [容器别名]命令挂载到该容器上,则该容器可以被称之为数据卷容器,其主要功能是提供数据卷供其他容器挂载。当数据卷容器宕机后,并不会造成数据卷的回收卸载,数据卷会继续挂载在其他容器中。当全部挂载该数据卷的容器全部宕机后,该数据卷才会卸载。

二、数据卷

1、创建数据卷

[root@docker ~]# docker volume create vtest1
vtest1
[root@docker ~]# docker volume create
93960c97d9ecdb820403d32e288e3fc844dcdadee757b46b3a7bb20a9c7950c0

2、查看信息

2.1  列出已知的所有卷

[root@docker ~]# docker volume ls
DRIVER              VOLUME NAME
local               93960c97d9ecdb820403d32e288e3fc844dcdadee757b46b3a7bb20a9c7950c0
local               vtest1

2.2  显示一个或多个卷上的详细信息 

[root@docker ~]# docker volume inspect vtest1 
[
    {
        "CreatedAt": "2020-09-13T22:08:32+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/vtest1/_data",
        "Name": "vtest1",
        "Options": {},
        "Scope": "local"
    }
]

2.3  查看 /var/lib/docker/volumes路径下,会发现所创建的数据卷

[root@docker ~]# ls /var/lib/docker/volumes   
93960c97d9ecdb820403d32e288e3fc844dcdadee757b46b3a7bb20a9c7950c0
vtest1

3、 删除数据卷

Volume 只有在下列情况下才能被删除:
1)docker rm -v删除容器时添加了-v选项
2)docker run --rm运行容器时添加了--rm选项
 
否则,会在/var/lib/docker/volumes目录中遗留很多不明目录。
可以使用下面方式找出,然后删除_data目录下的数据文件
[root@docker]# docker inspect huihui|grep /var/lib/docker/volumes
                "Source": "/var/lib/docker/volumes/97aa95420e66de20abbe618fad8d0c1da31c54ce97e32a3892fa921c7942d42b/_data",
 
可以使用 docker rm -v 命令在删除容器时删除该容器的卷。示例如下:
[root@docker]# docker run -d -P --name huihui -v /www docker.io/centos
69199905a74cb360935e32f4e99f7f11319f6aa36033a920aa0bae25874f5c69
 
[root@docker]# docker volume ls
DRIVER              VOLUME NAME
local               5341c03f3b94f13f4c86d88ccb0f3b63487adf30dea7ae6b2d06e947235e7330
local               97aa95420e66de20abbe618fad8d0c1da31c54ce97e32a3892fa921c7942d42b
local               data_volume
 
[root@docker]# docker rm -vf huihui
huihui
[root@docker]# docker volume ls
DRIVER              VOLUME NAME
local               5341c03f3b94f13f4c86d88ccb0f3b63487adf30dea7ae6b2d06e947235e7330
local               data_volume

4、 挂载数据卷

可以直接挂载宿主机文件或目录到容器里,可以理解为目录映射,这样就可以让所有的容器共享宿主机数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值