0
点赞
收藏
分享

微信扫一扫

Study-06-容器数据卷

mjjackey 2022-04-07 阅读 37
docker

1、数据卷

1.1 什么是容器数据卷

        容器之间可以有一个数据共享的技术,Docker 容器中产生的数据,同步到本地。

        这就是卷的技术,目录的挂载,将我们容器的内的目录,挂载到Linux上面。

总结:容器的持久化和同步操作,容器间也是可以容器共享的。

1.2. 使用数据卷

        docker run -it -v 主机端口 : 容器端口

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

        测试:docker run -it -v /home/ceshi:/home centos /bin/bash

        启动后通过docker inspect 容器id 查看挂载信息

        测试文件同步:

 反向测试:

        1.停止容器

        2.宿主机上修改文件

        3.启动容器

        4 .容器内的数据

        好处:只需要在本地修改即可,容器内会自动同步。

        坏处:会占用两倍的存储!

1.3.实战测试:安装MySQL

思考:Mysql的数据持久化问题

#获取镜像

#运行容器,需要做数据挂载  安装启动MySQL,需要配置密码,这是注意点!

#官方测试

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

# 启动我们的数据库

        -d 后台运行

        -p 端口映射

        -v 卷挂载

        -e 环境配置

        --name 容器起名

        mysql:8.0.23 配置版本

#启动成功之后,在本地使用sqlyog连接测试一下:

这里可能会启动失败,如果阿里云安全组端口没开的话,就有可能报错,所以要先去把安全组打开,如果不是这个问题的话可以参考:

宿主机的SQLyog连接不上问题icon-default.png?t=M276http://t.csdn.cn/aaulb

#首先SOLyog 连接到服务器的3310,然后3310和容器内的3306映射,这个时候就可以连接上了。

此处配置好版本后,就可以去本地的SQLyog上进行连接了。

#在本地测试创建一个数据库,查看一下我们映射的路径是否正确。

 ps:这里成功是因为先挂载覆盖了,然后MYSQL程序启动才自动创建的数据。

假设将容器删除:

发现挂载到本地的数据卷依旧没有丢失,这就实现了容器数据持久化功能。

2.具名和匿名挂载

 

 通过具名挂载可以方便的找到我们的一个卷,大多数情况使用具名挂载 !

拓展:

3.初识DockerFile

3.1DockerFile构建镜像

DockerFile 就是用来构建docker 镜像的构建文件---命令脚本!

通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个个命令,每个命令都是一层。

 

 这个卷和外部一定有一个同步目录,匿名挂载的。

 查看卷挂载的具体路径:docker inspect f49508f57f37

测试文件是否同步出去,这种方式使用的十分多,因为我们通常会构建自己的镜像。

假设构建镜像的时候没有挂载卷,要手动镜像挂载 -v 卷名:容器内的路径!

3.2数据卷容器的联系

多个mysql同步数据

 

 

将父容器docker01删除:

 然后在其他容器下查看之前共享的文件是否还存在:

 发现docker01容器创建的文件依旧存在!

 多个mysql实现数据共享:

[root@liustudy]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:8.0.23


[root@liustudy]# docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-form mysql01 mysql:8.0.23

# 这个时候就可以实现两个容器数据同步!

结论:

        容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。

        但是一旦持久化到了本地,这个时候,本地的数据是不会删除的。

4. DockerFile

4.1 Dockerfile 介绍

dockerfile 是用来构建docker镜像文件镜像的文件,命令参数脚本!

构建步骤:

        1. 编写一个dockerfile文件

        2. docker build 构建成为一个镜像

        3. docker run 运行镜像、

        4. docker push 发布镜像(DockerHub 、阿里云镜像仓库!)

查看官网的做法:

很多官方镜像都是基础包,很多功能都没有,我们会自己搭建自己的镜像。

官方既然可以制作镜像,我们也可以!

4.2 DockerFile构建过程

基础知识:

        1.每个保留关键字(指令)必须都是大写字母

        2. 执行从上到下顺序执行

        3. #表示注释

        4. 每一个指令都会创建提交一个新的镜像层,并提交!

 dockerfile 是面向开发的,我们以后要布置项目,做镜像,就需要编写 dockerfile 文件,这个文件十分的简单。

Docker 镜像 逐渐成为企业交付的一个标准,必须要掌握!

DockerFile : 构建文件,定义了一切步骤,源代码

DockerImage : 通过DockerFile 构建生成的镜像,最终发布和运行的产品,原来是jar、war。

Docker容器:容器就是镜像运行起来提供服务

4.3 DockerFile的指令 

举报

相关推荐

0 条评论