(dockerfile介绍)容器间数据共享

初识Dockerfile

dockerfile就是用来构建docker镜像的构建文件!就是命令脚本!
通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个一个的命令,每个命令都是一层!

[root@localhost ~]# cat dockerfile
FROM centos

VOLUME ["volume01","volume02"]

CMD echo "=========end========="

CMD /bin/bash

 

# 这里的每个命令就是镜像的一层

 

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zhangshan_centos 1.0 2222807583cf 4 minutes ago 231MB

 

启动自己的容器

 

 

这个卷和外部一定有一个同步的目录

 

查看一下卷挂载的路径(inspect)

测试一下是否同步(可创建文件测试)


这种方式应用广泛,应为我们可能会构建自己的镜像
假设构建镜像时没有挂载卷,要手动镜像挂载 -v 卷名:容器内路径

 

数据卷容器

多个mysql数据同步


# 启动3个容器,通过我们刚才自己创建的镜像启动

第一个:
[root@localhost ~]# docker run -it --name docker01 zhangshan_centos:1.0
[root@35e0063c9f65 /]# ls
bin etc lib lost+found mnt proc run srv tmp var volume02
dev home lib64 media opt root sbin sys usr volume01

第二个:
[root@localhost ~]# docker run -it --name docker02 --volumes-from docker01 zhangshan_centos:1.0
[root@ae26bc322675 /]# ls
bin etc lib lost+found mnt proc run srv tmp var volume02
dev home lib64 media opt root sbin sys usr volume01

 

 

 

# 测试:可以删除docker01.查看一下docker02和docker03是否还可以访问到这个文件
# 测试依旧可以访问

 

 

 

 

 

多个mysql实现数据共享

[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 --name mysql01 mysql:5.7

[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 --name mysql02 --volumes-from mysql01 mysql:5.7

结论:
容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止
但是一旦你持久化到本地,这个时候,本地的数据是不会删除的!!!!

posted @ 2021-12-28 23:50  zhangshan  阅读(138)  评论(0编辑  收藏  举报