1、概述
Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
在Docker 常用命令篇中,我们已经知道了2中构建镜像的方式 export\import 和 commit方式。这两种方式都需要先运行并创建容器,然后在容器中安装vim、ifconfig等命令,然后再重新构建加强版的镜像,比较麻烦。Dockerfile通过编写文件直接构建镜像,在文件中编写需要安装的命令即可。
官网:Dockerfile reference | Docker Documentation
2、构建步骤
- 编码Dockerfile 文件
- docker build命令构建镜像
- docker run依镜像运行容器实例
3、构建解析过程
3.1、Dockerfile内容基础知识

- 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
- 指令按照从上到下,顺序执行
- #表示注释
- 每条指令都会创建一个新的镜像层并对镜像进行提交
3.2、Docker执行Dockerfile的大致流程
- (1)docker从基础镜像运行一个容器
- (2)执行一条指令并对容器作出修改
- (3)执行类似docker commit的操作提交一个新的镜像层
- (4)docker再基于刚提交的镜像运行一个新容器
- (5)执行dockerfile中的下一条指令直到所有指令都执行完成
4、常用指令详解
4.1、咱们先看下tomcat8 的Dockerfile 文件内容
# 继承至eclipse-temurin:8-jdk-focal
FROM eclipse-temurin:8-jdk-focal
# 设置环境变量
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
# 设置工作目录
WORKDIR $CATALINA_HOME
# let "Tomcat Native" live somewhere isolated
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE

最低0.47元/天 解锁文章
2036

被折叠的 条评论
为什么被折叠?



