dockerfile palabra clave
palabra clave | efecto | observación |
---|---|---|
DESDE | Especifica la imagen de base | Dockerfile designado en base a que la construcción de la imagen, el formato propuesto para escribir el conjunto de registro / espacio de nombres / proyecto: la etiqueta o el registro / espacio de nombres / proyecto: etiqueta como aliasName |
MAINTAINER | Información autor | Esto se utiliza para indicar que escribió el dockerfile |
ETIQUETA | etiqueta | Las etiquetas pueden ser utilizados para identificar dockerfile etiqueta utilizada en lugar de Mantenedor última instancia ventana acoplable imagen se puede ver en la información básica |
CORRER | Ejecutar el comando | El valor por defecto es la implementación de un formato de comando / bin / sh: el comando RUN o RUN [ "comando", "param1", "param2"] |
CMD | Iniciar una nave de comando | Proporcionar contenedor de cebado cuando el formato predeterminado usado en conjunción con órdenes y EntryPoint CMD param2 comando param1 o CMD [ "comando", "param1", "param2"] |
PUNTO DE ENTRADA | entrada | Generalmente producen algunas ejecuciones en recipientes cerrados se puede utilizar con el CMD mejor uso de la siguiente va a decir específicamente esta cosa |
COPIAR | Copiar archivos | Copiar el archivo a los comodines de tiempo de creación de imágenes se puede utilizar siempre y cuando el compuesto de reglas filepath.Match ir en el origen destino COPIA viaje si se construye a partir de la secuencia de salida estándar no puede utilizar esta palabra clave |
AÑADIR | Añadir archivo | construcción en el momento de añadir al archivo de imagen no se limita en el contexto actual puede construir a partir de una nota de servicio remoto origen destino ADD: diana nombre de la banda si / entonces se dirigirá a la carpeta como documentos internos inferirse de forma automática si no con destino / Jiang como sea posible para un archivo |
ENV | Variables de entorno | tiempo de construcción especificado por la cubierta -e formato ENV variable de entorno en el nombre del contenedor de arranque = valor ... |
ARG | parámetros de construcción | parámetros de construcción sólo cuando los parámetros utilizados para elaborar si hay entonces el valor del mismo nombre ENV ENV siempre tiene preferencia de arg |
VOLUMEN | Se puede montar fuera del volumen de datos definido | Montar imagen puede construir esos directorios especifica la hora de inicio de la hora de inicio del sistema de archivos utilizando el formato recipiente de volumen unión del -v [ "directorio"] |
EXPONER | puerto expuesta | Cuando se utiliza un recipiente puerto de escucha -p empieza a correr enlaces de puerto contenedor personalizado exponer Formato: EXPONER 8080 ni exponga 8080 / UDP Si usted no escucha TCP o UDP a continuación, el valor por defecto es TCP |
WORKDIR | Directorio de trabajo | En el interior del contenedor especificado directorio de trabajo se crea automáticamente si no se crea si el especificado / con una ruta relativa dirección absoluta si no es / Así que en el comienzo de la trayectoria de un workdir |
USUARIO | Los usuarios especifican la ejecución | Especifica la acumulación o el usuario RUN CMD ENTRYPONT ejecutan cuando el usuario de inicio |
CHEQUEO DE SALUD | Comprobar la salud | monitor designado la vigilancia de la salud del comando actual contenedor básicamente inútil porque muy a menudo la aplicación en sí tiene mecanismo de vigilancia de la salud |
ONBUILD | gatillo | Cuando hay un espejo ONBUILD palabras clave como cuando la imagen de base después de la finalización de la aplicación DE ONBUILD ejecutará comandos pero no afecta a la utilidad del espejo de corriente no es tan grande |
luz de freno | Una cantidad de una señal de transmisión para el huésped | La instrucción de ajuste STOPSIGNAL será enviado al recipiente para salir de las señales de llamada al sistema. Esta señal puede ser una tabla de llamadas de sistema de núcleo en un número sin signo válido posición coincidente, por ejemplo 9, o el formato SIGNAME nombres de señales, por ejemplo SIGKILL. Esto no se entiende y parece estar haciendo el host mediante la interacción de semáforos |
CÁSCARA | Especifica la ejecución de la secuencia de comandos shell | RUN CMD EntryPoint designado para ejecutar comandos al utilizar una cáscara como sh golpe zsh powershell formatos SHELL zsh |
La necesidad de prestar atención a la rutina
Seleccione el entorno de construcción
versión del núcleo de Linux debe ser superior a 3,10
no permitir que los problemas de aprovechar padre pit propensos ventanas
CMD y EntryPoint diferencia Contacto
联系:
当存在ENTRYPOINT的时候 CMD成为了参数 ENTRYPOINT = ENTRYPOINT <CMD>
区别:
CMD 就是单纯的执行一段shell 当要为 CMD添加参数的时候 只能选择全部覆盖CMD命令
如果是ENTRYPOINT 那么可以直接在启动容器最后添加 参数 因为当入口是ENTRYPOINT的时候CMD就成为了ENTRYPOINT的参数
ADD 和COPY的区别联系
联系:都是把文件添加到容器的image中
区别:
COPY 只能读取当前构建的上下文 如果是从标准输出流构建 COPY无法使用
ADD 可以使用远程服务的文件目录
VOLUME挂载目录需要注意的
1: 如果宿主机是windows 不能挂载空目录、和c盘的目录
2: 在VOLUME之后的构建操作 都无法生效 要求 暴露挂载卷 必须在最后一步 声明
构建镜像的注意点
1: 尽量选择 微缩基础镜像 例如alpine 减少镜像的体积
2: 尽量不要打包无用的文件到镜像中 减少镜像的体积
3: 尽量删除 各种编译、下载、安装过程中产生的缓存文件 减少镜像体积
4: 尽量使用分阶段构建镜像 一步步的扩展镜像功能 避免多层数镜像的产生
5: 准确使用dockerfile的关键字 例如CMD 和ENTRYPOINT 、 COPY 和ADD
docker build -f dockerfile文件路径 -t 镜像名称:版本 镜像生成路径