Docker容器数据卷技术介绍
Docker容器数据卷技术介绍
一、卷技术介绍
现在我们知道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下查看,也是空的。
相信现在应该可以体会到容器卷的作用了,比如有些容器里涉及需要改配置的,那么挂载到主机目录下之后,就不需要进入容器修改了,直接在外面修改,容器内自动同步,更多关于Docker容器数据卷的资料请关注脚本之家其它相关文章!
相关文章
Docker快速搭建PHP+Nginx+Mysql环境及踩坑
本文主要介绍了Docker快速搭建PHP+Nginx+Mysql环境及踩坑 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置
本篇文章主要介绍了详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06
最新评论