数据卷之Dockerfile(自己生成镜像挂载)
之前说过挂载的方式有匿名挂载,具名挂载,还有指定生成路径挂载。
现在我们可以通过生成一个镜像直接挂载!
dockerfile就是用来构建docker镜像的构建文件!实质就是命令脚本
(通过这个脚本就可以生成镜像,镜像是一层一层的,脚本是一个一个的命令,每个命令就是一层)
1,创建一个docker_volume_test文件,在文件里面创建dockerfile1,用来编写脚本
[root@CentOs home]# mkdir docker_volume_test
[root@CentOs home]# ls
docker_volume_test mysql slime Slime test
[root@CentOs home]# cd docker_volume_test/
[root@CentOs docker_volume_test]# vim dockerfile1
2,脚本内容
脚本内容包括指令(都是大写)和参数
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
这里的每个命令都是一层
3,生成镜像
[root@CentOs docker_volume_test]# docker build -f /home/docker_volume_test/dockerfile1 -t wz/centos:1.0 .(后面这个.不能忘!)
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM centos
---> 5d0da3dc9764
Step 2/4 : VOLUME ["volume01","volume02"]
---> Running in 12c98d5bb89c
Removing intermediate container 12c98d5bb89c
---> ad30bed96ee8
Step 3/4 : CMD echo "----end----"
---> Running in cbaf40de84ca
Removing intermediate container cbaf40de84ca
---> 49e0c1d341cf
Step 4/4 : CMD /bin/bash
---> Running in ff806d438310
Removing intermediate container ff806d438310
---> d9694ac32268
Successfully built d9694ac32268
Successfully tagged wz/centos:1.0
[root@CentOs docker_volume_test]#
4,进入我们自己生成的镜像
这个卷和外部一定有一个同步的目录!
5,查看一下卷挂载的路径
docker inspect 容器id
6,测试一下刚才的文件是否同步出去
这种方式我们未来会使用的十分多,因为我们通常会构建自己的镜像!
假设构建镜像的时候没有挂载卷,要手动镜像挂载 -v 卷名:容器内路径