一、使用dockerfile构建镜像,并挂载数据卷
1、DockerFile就是用来构建docker镜像的脚本文件。
2、如何自己建造一个镜像?
(1)使用vim编写一个脚本,名称建议使用dockerfilexxx。
(2)使用buil指令创建一个镜像
指令:
docker build -f /home/docker-test-home/dockerfile1 -t xiami/centos:1.0 .
创建镜像的过程,即按照脚本中的命令行逐步编译,即相当于镜像的分层过程。
(3)查看生成的镜像
已经生成镜像。
3、使用自己制造的镜像运行容器
(1)
运行成功
目录下有挂载的两个数据卷。
查看详细的挂载信息
(2)脚本中 ["volume01","volume02"] 的方式挂载而定数据卷是一种匿名挂载的方式。
3、通过上述方式可以发现,使用dockerfile的方式可以构建镜像,也可以通过dockerfile的方式挂载数据卷。
如果构建镜像的时候没有挂载卷,需要手动挂载镜像,即 “ -v 卷名:容器内路径 ” 的方式
二、DockerFile详解
1、使用DockerFile构建镜像的步骤
(1)编写一个dockerfile文件
(2)docker build构建成为一个镜像
(3)docker run运行镜像
(4)docker push发布镜像(可发布到DockerHub、阿里云镜像仓库等)
2、很多官方的镜像都是基础包,很多功能都没有,所有需要自己使用DockerFile添加。
3、基础知识
(1)dockerfile的每个保留关键字(指令)都必须是大写
(2)执行是从上到下顺序执行
(3)#表示注释
(4)每一个指令都会创建一个新的镜像层,并提交。
一个简单的实例:dockerfile的每一个指令都是在原基础上添加一层。
4、dockerfile是面向开发的,每次需要发布项目,做镜像,就需要编写dockerfile文件,docker镜像逐渐成为企业交付的标准,必须掌握。
5、镜像、容器、dockerfile之间的关系
DockerFile:构建文件,定义了一切的步骤和源代码。
DockerImages:通过DockerFile构建生成的镜像,即最终发布的产品。
DockerContainer:容器就是镜像运行起来提供的服务。
6、DockerFIle的指令。参考文末。
*-*本篇的指令*-*
1、
mkdir 文件夹名称 #创建一个文件夹
2、创建一个镜像
docker build -f /home/docker-test-home/dockerfile1 -t xiami/centos:1.0 .
-f:用于创建镜像的脚本所在目录
-t:生成镜像的版本信息
. :生成在当前目录
3、DockerFile的基本指令
(1)FROM #基础镜像。
(2)MAINTAINER #镜像的作者
(3)RUN #运行镜像
(4)ADD #添加依赖的文件,即copy文件,会自动解压
(5)WORKDIR #设置当前工作目录,镜像的工作目录
(6)VOLUME #挂载的目录
(7)EXPOSE #暴露端口,指定对外的端口
(8)CMD #指定容器启动的时候要运行的指令,只有最后一分会生效,可被替代。
(9)ENTRYPOINT #指定容器启动的时候要运行的指令,可以追加命令。
(10)ONBUILD #当构建一个被继承的DOckerFIle时,就会运行ONBUILD的指令。触发指令
(11)COPY #类似ADD,将文件拷贝到镜像中。
(12)ENV #构建的时候设置环境变量。