Docker数据管理

本文介绍了Docker数据管理的两种模式:数据卷和数据卷容器。数据卷提供持久化的存储,即使容器销毁,文件仍存在于宿主机。通过`docker run`命令创建并挂载数据卷,可以指定读写权限。数据卷容器则允许一个容器共享另一个容器的目录。当删除容器时,使用`-v`参数可一同删除数据卷,以避免产生孤儿文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker数据管理分为2中模式

  • 1 数据卷
  • 2 数据卷容器

 

数据卷

供容器读写的特殊目录,容器被销毁后宿主机上被挂载目录中的文件还是存在的。尽量挂载目录,不要挂载文件,在早期的docker版本中如果修改了挂载的文件,文件inode号有可能会发生改变

在宿主机上创建挂载目录

mkdir /opt/data

docker run -it --rm -v /opt/data:/opt centos bash

  • -v参数 挂载参数
  • /opt/data 宿主机上/opt/data目录
  • /opt 挂载到容器/opt目录

docker inspect 0729b74e9cd9

把宿主机/opt/data目录挂载到容器/opt下,这样在宿主机/opt/data修改文件,容器中/opt也会同步操作,容器销毁了,宿主机上/opt/data目录中的文件依然存在

指定权限挂载(rw,ro) 默认为读写

docker run -it -v /opt/data:/opt:ro centos bash

 

数据卷容器

共享容器中的目录,让一个容器访问另一个容器的目录

创建一个容器挂载宿主机/opt/data目录

docker run -it -v /opt/data --name mydata centos bash

在创建一个挂载mydata容器/opt/data目录的新容器data

docker run -it --volumes-from mydata --name data centos bash

--volumes-from  挂载数据卷容易 后面要跟容器名

发现在mydata容器下创建的123文件在data容器中也能看到,如果我们停掉或销毁mydata容器那么data容器中/opt/data目录下的文件是否还存在?答案是/opt/data目录下的文件依然存在,原理是挂载点只有未被使用的情况下才会销毁,只要有一个容器在使用该挂载点就不会被销毁

 

那么如果我们想要销毁容器时同时销毁容器中挂载点该如何做?

docker rm -fv data

  • -f 强制删除正在运行的榕溪
  • -v 删除数据卷

最好是在销毁容器并确定卷内文件没有用的时候加-v参数删除,所以以后删除容器的时候无论是挂载数据卷还是挂载数据卷容器来的都要加-v参数

 

为什么要删除挂载点数据卷那?

因为如果我们删除容器的时候没有加-v参数是不会销毁容器内部挂载点的,长时间下来会产生大量孤儿文件

docker volume ls

 

docker volume prune

prune : 删除所有未被使用的本地卷 最好慎用

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值