docker数据管理---数据卷,数据卷容器

文章介绍了Docker中两种数据管理机制:数据卷和数据卷容器。数据卷是绕过容器文件系统直接在主机上管理的特殊目录,可用于持久化和共享数据,即使容器删除,数据仍保留。数据卷容器则是不运行应用,专门用于创建和管理数据卷的容器,提供数据共享的中心点。文章通过示例展示了如何创建和挂载数据卷以及数据卷容器。
摘要由CSDN通过智能技术生成

在Docker中,数据卷(data volumes)和数据卷容器(data volume containers)是用于在容器之间共享和持久化数据的两种不同的机制。

一、数据卷

数据卷是一个特殊的目录或目录,可以绕过容器文件系统的常规层,直接在主机的文件系统上进行管理。数据卷可以在容器之间共享,并且可以持久存在,即使容器被删除,数据卷仍然存在。数据卷可以用于存储应用程序的数据、配置文件或其他需要在容器之间传递和持久化的内容。数据卷可以由Docker主机或其他容器创建和管理,而且可以在容器的生命周期中被挂载和卸载。

使用 -v 选项指定路径,格式 <host path>:<container path> 

docker run -it -v 主机目录:容器目录

下面使用training/webapp镜像创建一个web容器,应创建一个数据卷挂载到容器的/opt/webapp目录:

1.先拉取镜像

docker pull nginx:vl

 2.运行docker并挂载

默认挂载的权限是rw 

只读的话/web:/usr/local/nginx/html:ro

[root@master ~]# docker run -d -P --name web -v /web:/usr/local/nginx/html nginx:v1 /bin/bash
e18ba9b88b3cccd9c8fd8c06bc4e7e4ececaf995dbd189ee62d8b13d360b167b

3.进入web容器,写一个测试页面

[root@master ~]# docker exec -it web /bin/bash
root@231750af858b:/# ls
bin   dev		   docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc			 lib   media  opt  root  sbin  sys  usr
root@231750af858b:/# echo "test" >/usr/local/nginx/html/index.html

 4.在宿主机/web目录查看

/web目录不用事先创建 。删除web容器宿主机/web还在

 二、数据卷容器

数据卷容器是专门用于创建和管理数据卷的容器。数据卷容器本身不运行应用程序,而是用作数据卷的持久化存储和共享点。首先,你可以创建一个数据卷容器并将其挂载到主机或其他容器中。然后,其他容器可以通过挂载相同的数据卷容器来共享数据。数据卷容器提供了一个中心化的位置来管理和维护数据卷,使得容器之间的数据共享更加方便和可控。

1.创建一个数据卷容器dbdata,并在其中创建数据卷挂载到/dbdata;

docker run -it -v /dbdata --name dbdata ubuntu
 没有做关联挂载,在宿主机上就没有,做了关联挂载在宿主机上才存在对应目录

docker run -it -v /db:/dbdata --name dbdata ubuntu
                  做了关联挂载

其他容器中使用--volumes-from来挂载dbdata容器中的数据卷

2.创建db1和db2两个容器,并从dbdata容器挂载数据卷

docker run -it --volumes-from dbdata --name db1 ubuntu
docker run -it --volumes-from dbdata --name db2 ubuntu

db1和db2中都会有/dadata 

 3.在db2的/dbdata下创建一个测试文件

 dbdata中也会有

 4.如果删除挂载内容的容器(dbdata,db1,db2),数据卷并不会被自动删除。如果要删除一个数据卷,必须再删除最后一个还挂载着它的容器是使用docker rm -v命令来指定同时删除关联的容器

①首先删除dbdata和db1

[root@master ~]# docker rm -f dbdata db1
dbdata
db1

 删除列dbdata和db1,db3中的数据卷还在

②删除数据卷

[root@master ~]# docker rm -f -v db2
db2

总结一下两者的区别:
- 数据卷是一个特殊的目录,直接在主机的文件系统上进行管理,可以在容器之间共享和持久存在。
- 数据卷容器是用于创建和管理数据卷的容器,本身不运行应用程序,而是提供一个中心化的位置来管理和维护数据卷,使得容器之间的数据共享更加方便和可控。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值