meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| virtualizacion:docker:dockerfile [2017/09/18 10:56] – [Referencias] lc | virtualizacion:docker:dockerfile [2023/01/18 14:37] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ===== Dockerfile | + | ===== Docker images |
| - | Dockerfile es como un ficherto de texto que contienen una serie de instrucciones del tipo script, que se utiliza para construir automáticamente | + | Desde docker podemos descargar imágenes |
| + | ==== Comandos ==== | ||
| + | * **Ver las imágenes que tenemos disponibles en nuestro equipo**< | ||
| + | Esto nos mostrará la información de la imagen de Docker: | ||
| + | * REPOSITORY (nombre del repositorio) | ||
| + | * TAG (Etiqueta) | ||
| + | * IMAGE_ID (Identificador único de la imagen) | ||
| + | * SIZE (Tamaño del archivo) | ||
| + | * CREATED (Cuando fue creado este subrepositorio) | ||
| + | * **Descargar una imágen**< | ||
| + | |||
| + | ==== Como crear imágenes en Docker ==== | ||
| + | |||
| + | === Docker Build === | ||
| + | **docker build** es el comando para generar imágenes en base a un fichero **Dockerfile** que describe la imágen y el contexto que suele ser el directorio de trabajo local donde van a estar los ficheros | ||
| + | |||
| + | === Dockerfile === | ||
| + | Dockerfile es un ficherto de texto que contienen una serie de instrucciones del tipo script, que se utiliza para construir automáticamente imágenes. | ||
| + | Su función es automatizar la creación de imágenes, permitiendo facilmente repetir o modificar la creación de imágenes. | ||
| + | |||
| + | === Instrucciones en Dockerfile ==== | ||
| + | https:// | ||
| + | |||
| + | * **FROM image** | ||
| + | * **MAINTAINER < | ||
| + | * **RUN comando** para ejecutar un comando en el contexto de la imagen. | ||
| + | * **WORKDIR path** definimos el directorio de trabajo en el contenedor. | ||
| + | * **ENV var=value** | ||
| + | * **EXPOSE puerto**: indicamos | ||
| + | * **VOLUME path** definimos volúmenes en el contenedor. Creamos un punto de montaje que nos permite compartir archivos con la máquina anfitriona o con otros contenedores. | ||
| + | * **COPY origen destino** para copiar ficheros dentro de la imagen. También se usa para multi-stage builds. | ||
| + | * **ADD < | ||
| + | * **USER** usuario a usar cuando se lanza un contenedor y para la ejecución de cualquier instrucción RUN, CMD | ||
| + | * **LABEL** añade metadatos a una imagen. | ||
| + | |||
| + | Ejemplo de Dockerfile | ||
| + | <sxh> | ||
| + | #Utilizamos la imagen base de ubuntu 16.04 | ||
| + | FROM ubuntu: 16.04 | ||
| + | |||
| + | # instalamos el servidor web apache2, para reducir el tamaño, borramos la caché de paquetes apt y la lista de paquetes descargada | ||
| + | RUN apt-get update && apt-get install -y apache2 && apt-get clean && rm -rf / | ||
| + | |||
| + | # exponemos el puerto http TCP/80, copiamos el fichero index.html al DocumentRoot | ||
| + | EXPOSE 80 | ||
| + | ADD [" | ||
| + | |||
| + | # indicamos el comando que se va a ejecutar al crear el contenedor, y además, al usar el comando ENTRYPOINT, no permitimos ejecutar ningún otro #comando durante la creación. | ||
| + | ENTRYPOINT ["/ | ||
| + | </ | ||
| + | <note tip>Si nos fijamos en el ejemplo todas las instrucciones como FROM, MAINTAINER y FROM se han escrito con mayúsculas, | ||
| + | |||
| + | Una vez creado nuestro fichero dockerfile para generar la imagen suponiendo que estamos en el mismo directorio que nuestro fichero dockerfile | ||
| + | **docker build < | ||
| + | |||
| + | Para eliminar una imagen | ||
| + | < | ||
| + | |||
| + | === Etiquetas === | ||
| + | Añadirle etiquetas a nuestras imágenes nos va a servir para añadir en los metadatos de la imagen información que nos permita identificar a nuestras imágenes. | ||
| + | por ejemplo, | ||
| + | < | ||
| ===== Referencias ===== | ===== Referencias ===== | ||
| * https:// | * https:// | ||