¿Qué es la sintaxis de Dockerfile?

Un Dockerfile es un script que utiliza la plataforma Docker para generar contenedores automáticamente. Es esencialmente un documento de texto que contiene todas las instrucciones que un usuario puede usar para crear una imagen desde la línea de comandos. La plataforma Docker es una plataforma basada en Linux que permite a los desarrolladores crear y ejecutar contenedores, programas autónomos y sistemas que son independientes de la infraestructura subyacente. Docker, que se basa en las capacidades de aislamiento de recursos del kernel de Linux, permite a los desarrolladores y administradores de sistemas transferir programas a través de múltiples sistemas y máquinas ejecutándolos dentro de contenedores.

Los contenedores Docker pueden operar en cualquier host Linux gracias a Dockerfiles. Las imágenes de Docker se utilizan para construir entornos de contenedores para aplicaciones y se pueden producir de forma manual o automática mediante Dockerfiles. Los contenedores Docker pueden ejecutar aplicaciones de Linux y Windows. Los desarrolladores pueden usar Dockerfiles para construir una compilación de contenedor automatizada que siga una serie de instrucciones de línea de comandos. La contenedorización de Docker es esencialmente virtualización a nivel del sistema operativo. Sin la sobrecarga de inicio de las máquinas virtuales, varios contenedores independientes pueden ejecutarse dentro de una sola instancia de Linux.

Los Dockerfiles brindan a las aplicaciones comerciales más flexibilidad y movilidad. Las empresas de TI utilizan los Dockerfiles para agrupar programas y sus dependencias en un contenedor virtual que puede funcionar en modo bare metal, en nubes públicas o privadas, o en las instalaciones. Numerosas aplicaciones, tareas de trabajadores y otras actividades pueden operar de forma independiente en una sola computadora física o en varias máquinas virtuales que usan contenedores. Kubernetes es una solución de código abierto para automatizar la gestión y orquestación de aplicaciones en contenedores basadas en Dockerfile.

En este artículo, analizaremos la sintaxis para escribir un Dockerfile paso a paso.

1. DESDE: 

Una declaración FROM define qué imagen descargar y comenzar. Debe ser el primer comando en su Dockerfile. Un Dockerfile puede tener varias instrucciones FROM, lo que significa que el Dockerfile produce más de una imagen.

Ejemplo:

FROM java: 8

2. MANTENEDOR: 

Esta declaración es un tipo de documentación que define al autor que está creando este Dockerfile o a quién debe contactar si tiene errores.

Ejemplo:

MAINTAINER Firstname Lastname <example@geeksforgeeks.com>

3. EJECUTAR:

La declaración RUN define ejecutar un comando a través del shell, esperar a que finalice y guardar el resultado. Indica qué proceso se ejecutará dentro del contenedor en el momento de la ejecución.

Ejemplo:

  • EJECUTAR descomprimir install.zip /opt/install
  • EJECUTAR eco hola 

4. AÑADIR: 

Si definimos agregar algunos archivos, se usa la instrucción ADD. Básicamente da instrucciones para copiar nuevos archivos, directorios o direcciones URL de archivos remotos y luego los agrega al sistema de archivos de la imagen.
En resumen, puede agregar archivos locales, contenido de archivos tar y URL.

Ejemplo:

1. Archivos locales: AGREGAR run.sh /run.sh

2. Archivos Tar: AGREGAR project.tar.gz /install/

3. URL: AGREGAR https://project.example-gfg.com/downloads/1.0/testingproject.rpm/test   

5. ENV:

La declaración ENV establece las variables de entorno tanto durante la compilación como cuando se ejecuta el resultado. Se puede usar en Dockerfile y en cualquier script que llame. Se puede usar en Dockerfile, así como en cualquier secuencia de comandos a la que llama Dockerfile. Estos también son persistentes con el contenedor y se pueden consultar en cualquier momento.

Ejemplo:

ENV URL_POST=production.example-gfg.com

6. PUNTO DE ENTRADA:

Especifica el inicio de la expresión que se utilizará al iniciar su contenedor. Simplemente ENTRYPOINT especifica el inicio del comando a ejecutar. Si su contenedor actúa como un programa de línea de comandos, puede usar ENTRYPOINT.

Ejemplo:

ENTRYPOINT ["/start.sh"]

7. CMD:

CMD especifica el comando completo para ejecutar. Podemos decir que CMD es el argumento predeterminado que se pasa al PUNTO DE ENTRADA. El propósito principal del comando CMD es lanzar el software requerido en un contenedor.

Ejemplo:

  • CMD [“programa-primer plano”]
  • CMD [“ejecutable”, “programa1”, “programa2”]

Nota: si tiene ENVIRONMENT y CMD, se combinan.

8. EXPONER:

La instrucción EXPOSE asigna un puerto al contenedor. Los puertos pueden ser TCP o UDP pero por defecto es TCP.

Ejemplo:

EXPOSE 3030

9. VOLUMEN:

La instrucción VOLUME define volúmenes compartidos o volúmenes efímeros dependiendo de si tiene uno o dos argumentos.

Ejemplo:

1. Si tiene dos argumentos, asigna una ruta de host a una ruta de contenedor.

        VOLUMEN [“/host/ruta” “/contenedor/ruta/”]

2. Si tiene un argumento, crea un volumen que puede ser heredado por los contenedores posteriores.

          VOLUMEN [“/datos-compartidos”]

10. DIRECCIÓN DE TRABAJO:

 Como sugiere el nombre, WORKDIR establece el directorio en el que comienza el contenedor. Su objetivo principal es establecer el directorio de trabajo para todos los comandos futuros de Dockerfile.

Ejemplo:

WORKDIR /directory-name

11. USUARIO: 

Establece qué contenedor de usuario se ejecutará como. Esto puede ser útil si tiene directorios de red compartidos involucrados que asumen un nombre de usuario fijo o un número de usuario fijo.

Ejemplo:

USER geeksforgeeks
USER 4000

Publicación traducida automáticamente

Artículo escrito por itsnitish22 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *