Docker: Fundamentos y Uso en Contenedores

Conceptos Clave de Docker

En Docker, una imagen actúa como un template de solo lectura que incluye el sistema de archivos y el entorno de ejecución para aplicaciones. Por ejemplo, una imagen base de Ubuntu proporciona el sistema operativo necesario.

Un contenedor es una instancia aislada creada a partir de una imagen, emulando un entorno Linux ligero con procesos y redes propios. Docker gestiona estos contenedores para ejecutar aplicaciones de manera independiente.

Un repositorio es un almacén centralizado para imágenes, donde cada imagen se distingue mediante etiquetas para versiones o variantes.

Ventajas sobre Máquinas Virtuales

Las máquinas virtuales requieren sistemas operativos completos, lo que aumenta el consumo de recursos y el tiempo de arranque. Docker, al virtualizar a nivel de proceso, ofrece entornos más eficientes y rápidos, ideales para desarrollo y despliegue continuo.

Instalación en Entornos Linux

Para configurar Docker en distribuciones basadas en Debian:


# Actualizar repositorios e instalar dependencias
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# Agregar la clave GPG oficial de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Añadir el repositorio de Docker
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Instalar el motor de Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Verificar la instalación mediante comandos alternativos:


# Comprobar la versión instalada
docker --version

# Mostrar información detallada del sistema Docker
docker system info

Para simplificar el uso sin privilegios de root, añade tu usuario al grupo correspondiente:


sudo usermod -aG docker $USER
newgrp docker  # Aplicar cambios sin reiniciar la sesión

Configurar un acelerador de imágenes editando el archivo de configuración:


# Crear o modificar /etc/docker/daemon.json
{
  "registry-mirrors": ["https://mirror.example.com"]
}

Reiniciar el servicio para aplicar los cambios:


sudo systemctl restart docker

Ejemplo Práctico de Uso

Inicia un contenedor con una imagen de Redis para probar el funcionamiento básico:


# Descargar y ejecutar un contenedor de Redis en segundo plano
docker run -d --nombre ejemplo-redis -p 6379:6379 redis:latest

# Verificar el contenedor en ejecución
docker ps -f nombre=ejemplo-redis

# Detener y eliminar el contenedor posteriormente
docker stop ejemplo-redis && docker rm ejemplo-redis

Preguntas Frecuentes sobre Docker

  • Definición de contenedor: Una unidad empaquetada que incluye código, runtime y dependencias, ejecutándose de forma aislada en el host.
  • Diferencia con máquinas virtuales: Los contenedores comparten el kernel del sistema host, reduciendo overhead, mientras que las VMs virtualizan hardware completo.
  • Propósito de Dockerfile: Un archivo de texto con instrucciones para construir imágenes de forma reproducible y automatizada.
  • Orquestación con Docker Compose: Mediante el uso de depends_on para definir el orden de inicio entre servicios en un archivo YAML.
  • Componentes principales: Docker daemon, cliente CLI, registros de imágenes y el motor de contenedores.
  • Comandos esenciales: docker ps para listar contenedores, docker logs para revisar salidas, y docker exec para interactuar con contenedores activos.
  • Ciclo de vida de contenedores: Incluye estados como creado, ejecutando, pausado, detenido y eliminado, gestionados mediante comandos específicos.
  • Mecanismos de aislamiento: Docker utiliza namespaces para separar recursos del sistema y cgroups para limitar el uso de CPU y memoria entre contenedores.

Etiquetas: Docker contenedores virtualización dockerfile Docker Compose

Publicado el 7-3 16:38