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