之前有几篇关于Docker入门基础的文章,本文的重点是Dockerfile。
Docker 简介及安装
基于Docker搭建Nginx服务器
基于Docker搭建Jenkins环境
在 基于Docker搭建Nginx服务器 基于Docker搭建Jenkins环境 这两篇文章中是利用docker pull 从官方拉取一个镜像,然后基于这个镜像利用命令docker run 创建一个容器。但是面对复杂的应用,最佳的方案就是使用Dockerfile, Dockerfile是为快速构建docker image而设计的, 就像jenkins有jenkinsfile一样。
Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。
Dockerfile文件结构(四个部分)
- 基础镜像:以哪个镜像作为基础进行制作,用法是FROM 基础镜像名称
- 维护者信息:需要写下该Dockerfile编写人的姓名或邮箱,用法是MANITAINER 名字/邮箱
- 镜像操作命令:对基础镜像要进行的改造命令,比如安装新的软件,进行哪些特殊配置等,常见的是RUN 命令
- 容器启动命令:当基于该镜像的容器启动时需要执行哪些命令,常见的是CMD 命令或ENTRYPOINT
1 | # Version 0.1 |
#####
docker build -t atlas-build .