Resumen de aprendizaje de Dockerfile

1. Función

El comando de compilación de Docker crea una imagen de Docker a partir de un Dockerfile y el contexto asociado.

docker build -f /path/to/a/Dockerfile  #指定用哪个Dockerfile进行镜像构建
docker build -t shykes/myapp           #指定构建好镜像的存储位置
docker build -t shykes/myapp:1.0.2 -t shykes/myapp:latest  #构建好的镜像存储为多个版本

2. Palabras clave relacionadas

escape     指定Dockerfile的转义符,默认是\
.dockerignore    构建镜像是忽略的文件或目录;! 表示例外
FROM    Dockerfile必须以FROM指令开始,为随后的指令导入一个基础镜像;与ARG的关系,支持引用在第一个FROM指令前声明的任何变量
RUN    运行任意指令并把生成的结果运用于dockfile的下一步
CMD    每个Dockerfile文件中只能有一个CMD命令,如果有多个CMD的命令的话,只有最后一个生效。其主要目的为执行容器时提供一个默认值
LABEL    为镜像添加一个元数据
MAINTAINER(不建议使用)    为生成的镜像设置一个作者
EXPOSE    曝露容器在运行时的内部网络端口
ENV    设置环境变量
ADD    从源文件中添加文件、目录或远程文件到目的目录中
COPY    从源文件拷贝文件到目的目录中
ENTRYPOINT    用可执行文件来配置容器
VOLUME    用指定的名字做一个挂载点并标记为宿主机或其它容器的外部扩展分区
USER    设定镜像运行时的用户名或用户群组
WORKDIR    指定dockerfile中相关指令的工作路径
ARG    定义docker build时传递给构建器的变量
ONBUILD    为镜像添加触发器
STOPSIGNAL    设置容器退出的调用信号
HEALTHCHECK    检查容器是否正常运行
SHELL    允许用shell命令覆盖默认的shell命令

3. Plantillas relacionadas

FROM java8:latest
MAINTAINER Yuhongxi <[email protected]>

ENV JAVA_OPTIONS="-XX:+UnlockExperimentalVMOptions -XX:MaxDirectMemorySize=400M -XX:+UseContainerSupport -XX:MaxRAMPercentage=80.0 -XX:InitialRAMPercentage=50.0 -XX:MinRAMPercentage=50.0 -XshowSettings:vm"
ENV JAVA_OPTIONS_EXT="-XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/evo-rcs/logs/heapdump.hprof -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5009"

RUN mkdir -p  /opt/evo-rcs
COPY ./target/evo-rcs.jar /opt/evo-rcs/evo-rcs.jar
WORKDIR /opt/evo-rcs
CMD java ${JAVA_OPTIONS} ${JAVA_OPTIONS_EXT} -jar evo-rcs.jar

EXPOSE 9001
EXPOSE 7070
EXPOSE 5009

HEALTHCHECK --start-period=150s --interval=30s --timeout=10s CMD curl -f http://localhost:9001/actuator/info || exit 1

Diferencias entre CMD y ENTRYPOINT:
1. Si el propósito de Dockerfile es ejecutar una aplicación o servicio, como ejecutar un MySQL, se debe usar primero la instrucción ENTRYPOINT en formato Exec. CMD puede proporcionar parámetros predeterminados adicionales para ENTRYPOINT, y la línea de comando de ejecución de la ventana acoplable se puede usar para reemplazar los parámetros predeterminados
2. Si desea establecer el comando de inicio predeterminado para el contenedor, puede usar el comando CMD. Los usuarios pueden reemplazar este comando predeterminado en la línea de comando de ejecución de la ventana acoplable

Supongo que te gusta

Origin blog.csdn.net/jinba225/article/details/117675016
Recomendado
Clasificación