用于构建Docker镜像的文本,由一条条指令构成
Docker执行Dockerfile的流程
-
Docker从基础镜像执行一个容器
-
执行一条指令并对容器进行修改
-
执行类型Docker commit的命令添加一个新的镜像层
-
Docker再基于新的镜像执行一个新的容器
-
执行Dockerfile中的下一条命令直至指令结束
关键字
|------------|----------------------------------|
| FROM | 指定基础镜像 |
| RUN | 执行构建的命令 |
| ENTRYPOINT | 指定镜像的默认入口以及运行命令 |
| CMD | 启动容器时的命令 |
| ENV | 指定环境变量 |
| ADD | 复制指定的 src 路径下的内容到容器中的 dest 路径下 |
| COPY | 复制本地主机的 src 路径下的内容到镜像中的 dest 路径下 |
| VOLUME | 创建数据卷挂载点 |
| WORKDIR | 配置工作目录 |
| EXPOSE | 声明镜像内服务监听的端口 |
自定义镜像
案例:将一个springboot的jar包部署到Docker上
-
打包springboot项目
-
在linux中创建一个文件夹用于保存Dockerfile文件和jar包
-
创建Dockerfile文件
FROM java:8
ADD /springbootApplication.jar springbootApplication.jar
EXPOSE 8088
CMD java -jar springbootApplication.jar
- 保存文件
docker build -t springbootApplication .
- 运行自定义的镜像
docker run -d -p 8088:8088 \
--name news8088 \
--restart=always
\ springbootApplication