Docker数据卷容器及DockerFile

一:介绍

什么是容器数据卷/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进行处理,非常感谢!

上一篇 2020年6月7日
下一篇 2020年6月7日

相关推荐