Cómo ejecutar un contenedor Docker basado en una imagen personalizada

DockerBeginner
Practicar Ahora

Introducción

Docker es una plataforma de contenedorización popular que permite a los desarrolladores empaquetar y desplegar aplicaciones en un entorno consistente y aislado. En este tutorial, aprenderás a construir una imagen Docker personalizada y ejecutar un contenedor Docker basado en esa imagen. Al final de esta guía, tendrás una comprensión sólida del proceso para crear, gestionar y ejecutar contenedores Docker para tus aplicaciones.

Entendiendo los Contenedores Docker

Docker es una plataforma de código abierto popular que permite a los desarrolladores construir, desplegar y ejecutar aplicaciones en un entorno de contenedorización. Los contenedores son paquetes de software ligeros, autónomos y ejecutables que incluyen todo lo necesario para ejecutar una aplicación, incluyendo el código, el tiempo de ejecución, las herramientas del sistema y las bibliotecas.

¿Qué es un Contenedor Docker?

Un contenedor Docker es una unidad de software estandarizada que empaqueta el código y todas sus dependencias para que la aplicación se ejecute de forma rápida y fiable desde un entorno informático a otro. Los contenedores se crean a partir de imágenes Docker, que son los planos para crear contenedores.

graph LR A[Imagen Docker] --> B[Contenedor Docker] B[Contenedor Docker] --> C[Aplicación en ejecución]

Beneficios de los Contenedores Docker

Los contenedores Docker ofrecen varias ventajas sobre los enfoques tradicionales de virtualización:

Beneficio Descripción
Portabilidad Los contenedores pueden ejecutarse de forma consistente en cualquier máquina, independientemente de la infraestructura subyacente.
Eficiencia Los contenedores comparten el sistema operativo del host, lo que los hace más ligeros y eficientes que las máquinas virtuales.
Consistencia Los contenedores garantizan que las aplicaciones siempre se ejecutarán de la misma manera, independientemente del entorno.
Escalabilidad Los contenedores se pueden escalar fácilmente hacia arriba o hacia abajo para satisfacer las demandas cambiantes.

Ciclo de Vida de un Contenedor Docker

El ciclo de vida de un contenedor Docker incluye las siguientes etapas:

  1. Construcción: Creación de una imagen Docker a partir de un Dockerfile.
  2. Envío: Almacenamiento de la imagen Docker en un registro, como Docker Hub.
  3. Ejecución: Lanzamiento de un nuevo contenedor a partir de una imagen Docker.
  4. Gestión: Monitoreo, escalado y mantenimiento de los contenedores en ejecución.

Al comprender los fundamentos de los contenedores Docker, ahora puedes pasar a la construcción de una imagen Docker personalizada.

Creando una Imagen Docker Personalizada

Para crear una imagen Docker personalizada, necesitas crear un Dockerfile, que es un archivo de texto que contiene instrucciones para construir la imagen.

Creando un Dockerfile

Aquí hay un ejemplo de Dockerfile que crea una imagen personalizada basada en la imagen base Ubuntu 22.04 e instala el servidor web Apache:

## Usa la imagen base Ubuntu 22.04
FROM ubuntu:22.04

## Actualiza el índice de paquetes e instala Apache
RUN apt-get update && apt-get install -y apache2

## Define el comando predeterminado para ejecutar cuando se inicia el contenedor
CMD ["apache2ctl", "-D", "FOREGROUND"]

Construyendo la Imagen Docker

Para construir la imagen Docker a partir del Dockerfile, ejecuta el siguiente comando en el mismo directorio que el Dockerfile:

docker build -t my-apache-image .

Este comando creará una nueva imagen Docker llamada my-apache-image basada en las instrucciones del Dockerfile.

Inspeccionando la Imagen Docker

Después de construir la imagen, puedes listar todas las imágenes en tu sistema usando el siguiente comando:

docker images

Esto mostrará la lista de imágenes Docker, incluyendo la my-apache-image que acabas de crear.

También puedes inspeccionar los detalles de la imagen usando el siguiente comando:

docker inspect my-apache-image

Esto mostrará los metadatos y la configuración de la imagen Docker.

Ahora que tienes una imagen Docker personalizada, puedes proceder a ejecutar un contenedor basado en esta imagen.

Ejecutando un Contenedor Docker desde una Imagen Personalizada

Ahora que tienes una imagen Docker personalizada, puedes ejecutar un contenedor basado en esa imagen.

Iniciar un Contenedor Docker

Para iniciar un nuevo contenedor a partir de la imagen my-apache-image, utiliza el siguiente comando:

docker run -d -p 80:80 --name my-apache-container my-apache-image

Aquí te explica cada parte del comando:

  • docker run: Inicia un nuevo contenedor Docker.
  • -d: Ejecuta el contenedor en modo desacoplado, lo que significa que se ejecuta en segundo plano.
  • -p 80:80: Mapea el puerto 80 del host al puerto 80 del contenedor, permitiéndote acceder al servidor web desde el host.
  • --name my-apache-container: Asigna el nombre "my-apache-container" al contenedor en ejecución.
  • my-apache-image: El nombre de la imagen Docker a usar para el contenedor.

Verificando el Contenedor en Ejecución

Después de iniciar el contenedor, puedes verificar que esté en ejecución usando los siguientes comandos:

## Listar todos los contenedores en ejecución
docker ps

## Inspeccionar el contenedor
docker inspect my-apache-container

El comando docker ps mostrará la lista de contenedores en ejecución, incluyendo el my-apache-container que acabas de iniciar.

El comando docker inspect proporcionará información detallada sobre el contenedor en ejecución, incluyendo su dirección IP, los mapeados de puertos y otros detalles de configuración.

Accediendo al Servidor Web

Una vez que el contenedor esté en ejecución, puedes acceder al servidor web Apache abriendo un navegador web y navegando a http://localhost. Deberías ver la página de bienvenida predeterminada de Apache.

Al comprender cómo ejecutar un contenedor Docker basado en una imagen personalizada, ahora puedes desplegar tus propias aplicaciones en un entorno contenedorizado.

Resumen

En este tutorial, has aprendido a construir una imagen Docker personalizada y ejecutar un contenedor Docker basado en esa imagen. Has explorado los pasos para crear una imagen Docker, incluyendo la escritura de un Dockerfile y la construcción de la imagen. Además, has aprendido a ejecutar un contenedor Docker utilizando la imagen personalizada, gestionar el ciclo de vida del contenedor y acceder al contenedor en ejecución. Con estas habilidades, ahora puedes empaquetar y desplegar tus aplicaciones con confianza utilizando contenedores Docker.