一:介绍
什么是容器数据卷/h3>
我们都知道,容器中是有数据的,如果我们将容器删除,数据就会丢失,就好比我们的MySQL服务容器,我们把容器删了,数据就没了,删库跑路都不用 rm -rf /* 命令的,所以,我们需要一种可以把容器中的文件同步到本地中,这样,即使删除了容器,数据依旧存在,这便就是卷技术,总的来说,就是容器的持久化和同步操作,容器之间也可以数据共享.
使用方法:
二:数据卷挂载
1.使用命令完成容器卷挂载:
3.测试:
修改主机文件:
6.测试挂载mysql:
启动mysql容器,挂载两个目录:
我们可以看到挂载到本地的mysql的data目录已经同步了数据;
本地:
如果你使用的是windows版本的docker,具名挂载之后,是找不到路径的(至少我没找到,有知道的小伙伴可以评论留言告诉我),但是linux版本的docker可以.所有docker的容器卷,在没有指定路径的情况下,存放在:
其数据存放在_data目录下:
2.匿名挂载:
我们来使用命令查看挂载情况:
启动镜像,查看目录结构,我们会发现两个挂载的目录,我们可以查看主机目录.
3.查看主机目录:
2.启动第二个容器:
切换到父容器看看文件是否同步:
4.修改父容器内容
接着修改父容器文件内容,查看两个子容器内容是否发生改变:
第三个容器:
结论:
事件 | 结果 |
---|---|
删除父容器 | 子容器数据不会消失 |
删除父容器文件 | 子容器文件会随之消失 |
同理我们能够知道,子容器删除文件,父容器的文件也会随之消失.
7.扩展:
两个mysql或者多个mysql实现数据同步:
数据卷容器的生命周期是直持续到没有容器使用为止。
如果你持久化到了本地,本地的数据是不会删除的.
五.DockerFile
1.DockerFile介绍:
构建步骤:
1.编写一个DockerFile文件
2.使用docker build命令来执行脚本,构建镜像
3.使用docker run命令来运行我们构建的镜像
4.docker push 发布镜像,可以发送到docker hub 和阿里云镜像仓库里面
首先我们可以看看仓库里面的镜像是如何被制作的:
我们可以看到一串脚本,其中所有关键字都必须大写,比如刚开始的FROM,执行顺序和java一样,从上往下执行,可以用#注释,每一步操作都会生成一个镜像层.比如我们在基础镜像上安装了jdk,便会生成一个新的镜像层,安装玩tomcat,也会生成一个新的镜像层,容器进程的写入操作只在可写容器层中进行.
如下图:
3.制作一个tomcat镜像:
首先,我们需要准备一个tomcat压缩包,tomcat是采用java语言编写的,所以,我们也需要一个java的压缩包.
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!