Diferencia entre revisiones de «Usuario:ManuelRomero/Docker/dockerFile»
De WikiEducator
(→FROM) |
(→RUN) |
||
Línea 34: | Línea 34: | ||
=====RUN===== | =====RUN===== | ||
+ | *Esta es una instrucción muy importante y muy utilizada. Con ella vamos a poder ejectutar acciones o instrucciones en la imagen durante su construcción | ||
+ | *Es importante tener en cuenta que durante la construcción de la imagen, no se puede interactuar mediante el teclado, por lo que si la acción requiere que facilitemos algún valor o seleccionemos alguna opción, hay que preverlo y establecerlo previamente. | ||
+ | *Podremos ejecutar cualquier comando, siendo habituales: | ||
+ | #instalar paquetes: | ||
+ | RUN apt-get update && apt-get install -y \ | ||
+ | git | ||
+ | zip | ||
+ | php | ||
+ | #Ejecutar script, previamente creados | ||
+ | RUN bash nombre_scrip.sh | ||
+ | #Ejecutar comandos de administración | ||
+ | RUN mkdir -p /var/www/app && chown -R www-data:www-data /var/www/app | ||
+ | #Ejecutar comandos de instalación de paquetes específicos (p.e. de php con composer) | ||
+ | RUN composer install --no-scripts --no-autoloader | ||
+ | |||
=====CMD===== | =====CMD===== | ||
=====LABEL===== | =====LABEL===== |
Revisión de 11:05 9 ene 2023
Contenido
DokerFile
- Es un fichero de texto que va contener una serie de instrucciones a partir de las cuales vamos a crear una imagen.
- El fichero tiene un formato concreto, con una serie de instrucciones que veremos a continuación. Al menos es necesario utilizar la instrucción FROM para especificar la imagen base a partir de la cual queremos construir nuestra imagen personalizada, que es el objetivo de la especificación de este fichero
(: La idea es que partiendo de una imagen, personalicemos la imagen que queremos crear, después, a partir de esta imagen, levantaremos el contenedor)
- Una vez que tengamos el contenido del fichero construiremos la imagen a través del comando docker build [opciones] PATH|URK|-
- El nombre del fichero
- El nombre del fichero puede ser cualquiera, pero se recomienda que sea DockerFile, En caso de que se establezca otro nombre, habrá que especificarlo cuando se invoque a la instrucción build
docker build -f nombre_fichero .
Instrucciones
FROM: Establece la imagen base a partir de la cual se va a construir la imagen personalizada. RUN: Ejecuta un comando en la imagen durante la construcción. CMD: Especifica el comando predeterminado que se ejecutará cuando se inicie un contenedor a partir de la imagen. LABEL: Añade metadatos a la imagen. EXPOSE: Especifica un puerto o puertos que deben abrirse en el contenedor cuando se ejecuta. ENV: Establece una variable de entorno en la imagen. ADD: Copia archivos desde el host a la imagen. COPY: Copia archivos desde el contexto de construcción a la imagen. ENTRYPOINT: Especifica el programa que se ejecutará cuando se inicie un contenedor a partir de la imagen. VOLUME: Crea un punto de montaje en el contenedor. USER: Especifica el usuario o el grupo de usuarios que se utilizarán para ejecutar los comandos en el contenedor. WORKDIR: Establece el directorio de trabajo predeterminado para los comandos RUN, CMD, ENTRYPOINT, COPY y ADD. ARG: Declara un argumento que puede pasarse a la imagen durante la construcción con el parámetro --build-arg.
FROM
- Establece la imagen a partir de la cual partimos. Si por ejemplo, nuestro contenedor va a ejectuar un servidor web, deberíamos de partir de una imagen ngynx o http. conviene buscar la imagen de la que partamos en docker hub
FROM ubuntu:latest
- Si creamos la imagen a partir de este fichero de especificación, crearemos una imagen a partir de ubuntu:latest. Para ejecutar las instrucciones del fichero docker file usamos el comando build como se ha comentado anteriormente
- Una vez que establecemos la imagen a partir de la cual queremos partir, con las instrucciones siguiente vamos a personalizar nuestra imagen.
RUN
- Esta es una instrucción muy importante y muy utilizada. Con ella vamos a poder ejectutar acciones o instrucciones en la imagen durante su construcción
- Es importante tener en cuenta que durante la construcción de la imagen, no se puede interactuar mediante el teclado, por lo que si la acción requiere que facilitemos algún valor o seleccionemos alguna opción, hay que preverlo y establecerlo previamente.
- Podremos ejecutar cualquier comando, siendo habituales:
- instalar paquetes:
RUN apt-get update && apt-get install -y \ git zip php
- Ejecutar script, previamente creados
RUN bash nombre_scrip.sh
- Ejecutar comandos de administración
RUN mkdir -p /var/www/app && chown -R www-data:www-data /var/www/app
- Ejecutar comandos de instalación de paquetes específicos (p.e. de php con composer)
RUN composer install --no-scripts --no-autoloader