本文介绍: dockerfile 是 docker 镜像构建文件。包含用于构建 docker 镜像的指令和配置。通过Dockerfile可以自动化地构建Docker镜像,实现快速、一致和可重复的部署。是由一条条构建镜像所需的指令和参数构成的脚本。指令按照从上到下,顺序执行,每条指令都会创建一个新的镜像层并对镜像进行提交。
1.简介
- dockerfile 是 docker 镜像构建文件。
- 包含用于构建 docker 镜像的指令和配置。
- 通过Dockerfile可以自动化地构建Docker镜像,实现快速、一致和可重复的部署。
- 是由一条条构建镜像所需的指令和参数构成的脚本。
- 指令按照从上到下,顺序执行,每条指令都会创建一个新的镜像层并对镜像进行提交。
2.构建过程
- docker从基础镜像运行一个容器。
- 按顺序执行到某一条指令并对容器做成修改。
- 执行类commit的操作提交一个新的镜像层。
- docker再基于刚提交的镜像运行一个新容器。
- 以此类推直到所有指令都执行。
3.Dockerfile、Docker镜像与Docker容器
4.常用保留字
FROM
:描述的是构建新镜像所基于的基础镜像。MAINTAINER
:镜像维护者的姓名和邮箱地址。RUN
:构建容器时所所需的命令,在docker build时运行。EXPOSE
:当前容器对外暴露出的接口。WORKDIR
:设置后续指令的工作目录。USER
:指定该镜像以什么样的用户去执行,如果都不指定,默认是root。ENV
:用来在构建镜像过程中设置环境变量。ADD
: 将文件、目录或远程URL复制到镜像中。COPY
:将文件或目录复制到镜像中。VOLUME
:容器数据卷,用于数据保存和持久化工作。CMD
:指定容器启动后的要干的事情。(可以被覆盖)ENTRYPOINT
:设置容器创建时的主要命令。(不可被覆盖)
5.案例解析
-
FROM amazoncorretto:8-al2-jdk # 指定基础镜像 ENV CATALINA_HOME /usr/local/tomcat # 设置环境变量(以键值对的形式) ENV PATH $CATALINA_HOME/bin:$PATH RUN mkdir -p "$CATALINA_HOME" WORKDIR $CATALINA_HOME # 设置后续指令的工作目录。也即落脚点 ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR RUN set -eux; # 根据需要构建容器 mv webapps webapps.dist; # 可以使用shell语句进行操作 mkdir webapps; # verify Tomcat Native is working properly RUN set -eux; nativeLines="$(catalina.sh configtest 2>&1)"; nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; nativeLines="$(echo "$nativeLines" | sort -u)"; if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then echo >&2 "$nativeLines"; exit 1; fi EXPOSE 8080 # 指定暴露出的端口号 CMD ["catalina.sh", "run"] # 指定容器启动后的操作
原文地址:https://blog.csdn.net/m0_60610120/article/details/134748039
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_48256.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。