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 [2019/02/20 12:46] – lc | virtualizacion:docker:dockerfile [2023/01/18 14:37] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ===== Crear imágenes en Docker ===== | + | ===== Docker |
+ | Desde docker podemos descargar imágenes de contenedores o crear nuestras propias imágenes.Una imágen estara formada por varias capas (layers) | ||
- | ==== Docker Build ==== | + | ==== Comandos |
- | Docker Buid es el comando para generar imáganes en base a un fichero | + | * **Ver las imágenes |
- | ==== Instrucciones en Dockerfile ==== | + | 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:// | https:// | ||
- | * **FROM image** | + | * **FROM image** |
+ | * **MAINTAINER < | ||
* **RUN comando** para ejecutar un comando en el contexto de la imagen. | * **RUN comando** para ejecutar un comando en el contexto de la imagen. | ||
* **WORKDIR path** definimos el directorio de trabajo en el contenedor. | * **WORKDIR path** definimos el directorio de trabajo en el contenedor. | ||
* **ENV var=value** | * **ENV var=value** | ||
* **EXPOSE puerto**: indicamos | * **EXPOSE puerto**: indicamos | ||
- | * **VOLUME path** | + | * **VOLUME path** |
* **COPY origen destino** para copiar ficheros dentro de la imagen. También se usa para multi-stage builds. | * **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 [" | ||
- | ==== Dockerfile ==== | + | # indicamos el comando |
- | Dockerfile es como un ficherto de texto que contienen una serie de instrucciones | + | ENTRYPOINT ["/ |
+ | </ | ||
+ | <note tip>Si nos fijamos en el ejemplo todas las instrucciones | ||
+ | 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:// |