【Docker】8. 容器数据卷

本文介绍了Docker的卷技术,用于解决容器数据持久化和共享的问题。通过-v命令将主机目录挂载到容器,实现数据在容器内外的同步。文章通过实例演示了创建数据卷、数据双向同步以及容器重启后的数据保留,强调了卷技术在容器配置管理和数据持久化中的作用。

感谢B站狂神的学习资源,有兴趣的可以去搜索:遇见狂神说。

一、卷技术介绍

现在我们知道docker的理念就是把应用和环境打包成镜像,方便我们去运行容器。

但是现在有一个问题,比如我容器里的mysql存了好多的数据,那万一容器被删除,数据是不是就没了?这显然不合适。

于是,一个新的需求产生了:将数据存储在容器之外的地方,比如本地。对应的解决方案就是卷技术了,通过它,将容器中产生的数据同步到本地,让容器之间可以共享数据。

卷技术,说白了就是目录的挂载,将容器内的目录挂载到linux上。如图所示,将容器里的/usr/mysql挂载到外部linux下的/home/mysql。现在不仅mysql容器可以使用,其他的2个容器同样可以使用,实现了数据共享。

所以,卷技术的关键词:持久化、同步、数据共享。

二、使用数据卷

使用命令-v

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

现在我要启动centos镜像,并且把容器内的/home目录,挂载到主机的/home/test/目录下:

docker run -it -v /home/test:/home centos /bin/bash

可以看到启动容器成功,为了方便,我多开一个窗口。

这时候用docker inspect命令来查看容器,可以看到挂载情况。

docker inspect 370ff4e87083

找到Mounts,可以看到具体绑定明细。

现在容器内的/home目录下是空的,对应的主机的/home/test/下也是空的。

接着,我在容器内的/home下新建个文件new.txt,然后查看主机下的/home目录,发现文件已经同步。

反向操作

上面是从容器内到容器外,现在反过来,从主机目录下再增加一个文件second.txt,然后再到容器内查看,也是同步的。

停止容器

如果容器停止了,我在外面把文件都删掉了,当再次启动容器后进去查看,也是同步的。

重启容器,进入容器的/home下查看,也是空的。

相信现在应该可以体会到容器卷的作用了,比如有些容器里涉及需要改配置的,那么挂载到主机目录下之后,就不需要进入容器修改了,直接在外面修改,容器内自动同步。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值