Introducción a Dockerfile e introducción a los comandos comunes de la compilación de Docker

Catálogo de series relacionadas con el tutorial de uso de Docker


Tabla de contenido

Que es dockerfile 

La lógica de trabajo de la producción de imágenes de Docker

La estructura básica de Dockerfile

Ejemplo de formato de Dockerfile:

Crear imagen


Aprendimos antes que las imágenes de Docker están todas definidas oficialmente. ¿Podemos crear imágenes nosotros mismos?

Que es dockerfile 

  • Dockerfile es equivalente a un documento y los clientes pueden generar nuevos contenedores basados ​​en dockerfile
  • Dockerfile es el archivo fuente utilizado para crear la imagen y es la instrucción en el proceso de construcción del contenedor.
  • Docker puede leer la especificación de dockerfile para crear contenedores automáticamente y crear imágenes basadas en dockerfile
  • Cada instrucción crea una capa de espejo, es decir, las imágenes de espejo se superponen en múltiples capas, por lo tanto, cuantas más capas, menor es la eficiencia y menos capas para crear un espejo, mejor. Por lo tanto, las acciones que se pueden completar en una instrucción están definidas por una instrucción tanto como sea posible.

Vernáculo: un archivo llamado Dockerfile, que contiene los puntos necesarios del Dockerfile, y luego se convierte en un espejo después de construirlo.

La lógica de trabajo de la producción de imágenes de Docker

  • En primer lugar, debe tener un directorio para la creación de reflejo y hay un archivo en el directorio.
  • El nombre debe ser Dockerfile, Dockerfile tiene un formato especificado
  • Esta es una convención en la ventana acoplable. Si ha utilizado un archivo MAKE en lenguaje C, debe saberlo. Son todas convenciones de los lenguajes de programación. Nombre fijo, escrito en el código del programa de la ventana acoplable.
  • Si lo nombra usted mismo: docker build -t test -f dockerfile.
  • El signo # comienza con un comentario. La designación está representada por letras mayúsculas por defecto para distinguir comandos y parámetros.
  • La compilación de Docker lee el Dockerfile para leer la configuración en el Dockerfile en orden, y la primera instrucción sin comentarios debe comenzar con FROM, lo que indica en qué imagen base se basa para compilar la nueva imagen. Puede crear una nueva imagen basada en cualquier imagen existente.

La estructura básica de Dockerfile

Dockerfile generalmente se divide en cuatro partes:

  • Información básica de la imagen
  • Información del mantenedor
  • Instrucciones de funcionamiento del espejo
  • La instrucción
    接下来详细介绍
    '#' que se ejecuta cuando se inicia el contenedor es un comentario en el Dockerfile.

Docker ejecuta las instrucciones del Dockerfile en orden de arriba hacia abajo. Para especificar la imagen base, la primera instrucción debe ser FROM. Una declaración que comience con el carácter # se considera un comentario. Puede usar RUN, CMD, FROM, EXPOSE, ENV y otras instrucciones en los archivos Docker.

vim Dockerfile

Ejemplo de formato de Dockerfile:

 

Inserte la descripción de la imagen aquí

El orden de ejecución es de arriba a abajo, a su vez

 

instrucción descripción
DESDE La construcción de una nueva escena se basa en esa imagen reflejada
MANTENIMIENTO Nombre o dirección de correo electrónico del encargado del espejo
ETIQUETA Agrega información al espejo.
CORRER Comandos de Shell para ejecutar al construir la imagen
AGREGAR Agregar archivos locales al contenedor
COPIAR Copie archivos o directorios a la escena
ENV Establecer variables de entorno
USUARIO Especifique el usuario que ejecuta para los comandos de ejecución RUN, CMD y ENTRYPOINT
ARG Los parámetros que se deben pasar al comenzar desde el exterior, cuando se inicia el contenedor, use -build-arg para pasar los parámetros
EXPONER Declarar el puerto de servicio del contenedor en ejecución
CHEQUEO DE SALUD Verificación del estado del servicio en el contenedor
VOLUMEN Se usa para especificar el directorio persistente
WORKDIR Configure el directorio de trabajo para RUN, CMD, ENTRYPOINT, COPY y ADD
PUNTO DE ENTRADA Ejecutar cuando el contenedor se está ejecutando, si hay varios comandos ENTRYPOINT, el último entrará en vigencia
CMD Ejecutar al ejecutar el contenedor, si hay varios comandos CMD, el último entrará en vigencia

Crear imagen

docker build es un comando de docker que se usa para crear un espejo usando Dockerfile.
El método Build necesita escribir un archivo de configuración y luego usar la imagen existente actualmente para ajustar de acuerdo al archivo de configuración para generar una nueva imagen.

Formato de parámetro:

docker build [OPTIONS] PATH |URL| -[flags]

Options:
-t, --tag list   # 镜像名称
-f, --fire string   # 指定 Dockerfile文件位置
# Options 其他参数 docker build --help

Options:
	--add-host list           Add a custom host-to-IP mapping (host:ip) 
								# 添加自定义主机到ip的映射(主机:ip)
    --build-arg list          Set build-time variables 
    							# 设置构建时变量
    --cache-from strings      Images to consider as cache sources
    							# 要考虑作为缓存源的图像
    --cgroup-parent string    Optional parent cgroup for the container
    							# 容器的可选父cgroup
    --compress                Compress the build context using gzip
    							# 使用gzip压缩构建上下文
    --cpu-period int          Limit the CPU CFS (Completely Fair Scheduler) period
    							# 限制CPU CFS(完全公平调度程序)周期
    --cpu-quota int           Limit the CPU CFS (Completely Fair Scheduler) quota
								# 限制CPU CFS(完全公平调度程序)配额
-c, --cpu-shares int          CPU shares (relative weight)
								# CPU份额(相对权重)
    --cpuset-cpus string      CPUs in which to allow execution (0-3, 0,1)
								# 允许执行的cpu (0- 3,0,1)
    --cpuset-mems string      MEMs in which to allow execution (0-3, 0,1)
								# 允许执行的MEMs (0- 3,0,1)
    --disable-content-trust   Skip image verification (default true)
								# 跳过图像验证(默认为真)
-f, --file string             Name of the Dockerfile (Default is 'PATH/Dockerfile')
								# Dockerfile的名称(默认为‘PATH/Dockerfile’)
    --force-rm                Always remove intermediate containers
								# 总是移除中间容器
    --iidfile string          Write the image ID to the file
								# 将图像ID写入文件
    --isolation string        Container isolation technology
								# 容器隔离技术
    --label list              Set metadata for an image
								# 设置图像的元数据
-m, --memory bytes            Memory limit
								# 存储容量极限 / 内存限制
    --memory-swap bytes       Swap limit equal to memory plus swap: '-1' to enable unlimited swap
								# 交换限制等于内存加交换:'-1'以启用无限交换
    --network string          Set the networking mode for the RUN instructions during build (default "default")
								# 在构建期间为运行指令设置连网模式(默认为“default”)
    --no-cache                Do not use cache when building the image
								# 在构建映像时不使用缓存
    --pull                    Always attempt to pull a newer version of the image
								# 总是尝试拉一个较新的版本的图像
-q, --quiet                   Suppress the build output and print image ID on success
								# 如果成功,则禁止生成输出并打印图像ID
    --rm                      Remove intermediate containers after a successful build (default true)
								# 成功构建后删除中间容器(默认为true)
    --security-opt strings    Security options
								# 安全选项
    --shm-size bytes          Size of /dev/shm
								# 大小 /dev/shm
-t, --tag list                Name and optionally a tag in the 'name:tag' format
								# 名称和“Name:tag”格式的标记(可选)
    --target string           Set the target build stage to build.
								# 设置要构建的目标构建阶段。
    --ulimit ulimit           Ulimit options (default [])
								# Ulimit选项(默认[])

 

Supongo que te gusta

Origin blog.csdn.net/shi_hong_fei_hei/article/details/114481960
Recomendado
Clasificación