CodeGym /Cursos /Docker SELF /Introducción a Docker Images

Introducción a Docker Images

Docker SELF
Nivel 13 , Lección 0
Disponible

1.1 Conceptos básicos de Docker Images

Docker Images (imágenes de Docker) — son plantillas para los contenedores Docker. Contienen todo lo necesario para ejecutar aplicaciones: código, bibliotecas, dependencias, herramientas y archivos de configuración. Entender qué son las Docker Images y cómo están estructuradas es importante para usar Docker de manera eficiente.

Docker Image — es un modelo inmutable que se utiliza para crear contenedores. Contiene todos los componentes necesarios para ejecutar una aplicación en un entorno aislado. Cuando ejecutas un contenedor, Docker crea una instancia de la imagen y la pone en marcha.

Características clave de Docker Images:

  1. Inmutabilidad: las imágenes de Docker son inmutables. Cualquier cambio en el contenedor no afecta a la imagen original. Para cambiar el contenido de una imagen, es necesario crear una nueva imagen.
  2. Estructura en capas: las Docker Images están compuestas de varias capas. Cada capa representa un cambio en comparación con la anterior. Esto permite usar el espacio de manera eficiente, reutilizando capas.
  3. Identificación: cada imagen tiene un identificador único (SHA256-hash), así como uno o varios tags que facilitan la gestión de versiones de las imágenes.

Estructura de Docker Images:

Las Docker Images tienen una estructura en capas, donde cada capa es un sistema de archivos. Estas capas se almacenan en la caché de Docker y pueden ser reutilizadas por otras imágenes. La estructura en capas hace que las Docker Images sean ligeras y eficientes. Por ejemplo, la primera capa puede ser el sistema operativo, la segunda Python y la tercera tu aplicación.

Componentes principales de la estructura de Docker Images:

  1. Capa base (Base Layer): la capa inicial de la imagen, que a menudo se usa como base para crear otras imágenes. Por ejemplo, puede ser una versión mínima de un sistema operativo como Ubuntu o Alpine Linux.
  2. Capas intermedias (Intermediate Layers): estas capas se crean en base a comandos ejecutados en el Dockerfile (por ejemplo, instalación de paquetes, copia de archivos, etc.). Cada capa añade cambios a la anterior.
  3. Capa final (Final Layer): la última capa, creada en base a la instrucción CMD, ENTRYPOINT o cambios dentro del contenedor, se llama capa "contenedor". Esta capa es temporal y solo existe mientras el contenedor está en ejecución.

1.2 Cómo funcionan las capas de Docker Images

Cada capa de una imagen de Docker representa un conjunto de cambios en comparación con la capa anterior. Cuando Docker crea una imagen, ejecuta cada instrucción del Dockerfile y agrega una nueva capa para cada cambio.

Ejemplo de creación de capas:

  1. Imagen base: comencemos con una imagen base, por ejemplo, ubuntu:20.04. Esta será la primera capa.
  2. Instalación de paquetes: el comando RUN apt-get update && apt-get install -y python3 creará una nueva capa con Python instalado.
  3. Copia de archivos: el comando COPY . /app agregará los archivos de la aplicación en una nueva capa.
  4. Configuración del directorio de trabajo: el comando WORKDIR /app creará una capa que configurará el directorio de trabajo para los comandos posteriores.

Ventajas de usar capas:

  1. Reutilización: las capas pueden ser reutilizadas por otras imágenes. Por ejemplo, si dos imágenes usan la misma capa base, Docker la descargará solo una vez, ahorrando espacio y tiempo.
  2. Caché: Docker almacena en caché las capas, lo que acelera el proceso de construcción de imágenes. Si una capa no ha cambiado, Docker la utiliza desde la caché en lugar de volver a construirla.
  3. Modularidad: la estructura de capas permite desarrollar imágenes de manera modular. Puedes actualizar o modificar capas individuales sin afectar toda la imagen.

Identificación y etiquetas de Docker Images:

Cada Docker Image se identifica con un hash único (SHA256), que se genera en función del contenido de la imagen y de todas sus capas. Para facilitar la administración y versionamiento, las Docker Images también pueden tener etiquetas.

Ejemplo de identificación de imágenes:

El siguiente comando mostrará una lista de todas las imágenes en tu sistema, incluyendo su repositorio, etiquetas, identificadores y tamaños:

Terminal

docker images

1.3 Trabajo con Docker Images

Docker ofrece un montón de comandos para trabajar con imágenes. Aquí están los principales:

  • Crear imagen: docker build
  • Iniciar un contenedor desde una imagen: docker run
  • Lista de imágenes: docker images
  • Eliminar una imagen: docker rmi
  • Buscar imágenes en Docker Hub: docker search
  • Cargar una imagen desde Docker Hub: docker pull
  • Enviar una imagen a Docker Hub: docker push

Ejemplo de creación y uso de Docker Image:

1. Crear un Dockerfile:

dockerfile

# Usamos la imagen base de Ubuntu
FROM ubuntu:20.04

# Instalamos Python
RUN apt-get update && apt-get install -y python3

# Copiamos los archivos de la aplicación al contenedor
COPY . /app

# Establecemos el directorio de trabajo
WORKDIR /app

# Indicamos el comando para iniciar la aplicación
CMD ["python3", "app.py"]

2. Crear la imagen:

El siguiente comando creará una imagen con el nombre my_python_app, utilizando el Dockerfile del directorio actual:

Terminal

docker build -t my_python_app .

3. Iniciar un contenedor desde una imagen:

Usa el siguiente comando para iniciar un contenedor desde la imagen creada my_python_app en modo background:

Terminal

docker run -d my_python_app
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION