Referencia Rápida de Comandos Docker Esenciales y Conceptos de Kubernetes

Clasificado en Informática

Escrito el en español con un tamaño de 125,95 KB

Comandos Esenciales de Docker para la Gestión de Contenedores

Gestión Básica de Contenedores

docker ps
Lista los contenedores en ejecución.
docker ps -a
Lista todos los contenedores (incluyendo los detenidos).
docker stop <id>
Detiene un contenedor en ejecución.
docker rm <id>
Elimina un contenedor (debe estar detenido).
docker start <id>
Inicia un contenedor previamente creado y detenido.
docker run -d --name <nombre> -p 8080:80 nginx
Crea y ejecuta un nuevo contenedor en segundo plano (-d) basado en la imagen nginx, mapeando el puerto 8080 del host al 80 del contenedor.
docker inspect <id>
Muestra información detallada sobre un contenedor o imagen.
docker exec -it <contenedor> bash
Accede interactivamente (-it) a un contenedor para interactuar con su sistema de archivos y configuraciones.

Gestión de Imágenes Docker

docker pull <imagen>
Descarga una imagen desde Docker Hub.
docker images
Lista las imágenes almacenadas localmente en la máquina.
docker rmi <imagen>
Elimina una imagen de Docker.

Redes y Almacenamiento en Docker

Gestión de Redes (Networking)

docker network create <nombre_red>
Crea una red personalizada en Docker.
docker network ls
Lista todas las redes disponibles.
docker run --network <nombre_red> <imagen>
Conecta un contenedor a una red específica durante su creación.
docker exec -it <nombre_contenedor> ping <otro_contenedor>
Comprueba la comunicación entre contenedores dentro de la misma red.
docker network inspect <nombre_red>
Muestra detalles sobre una red creada.
docker network rm <nombre_red>
Elimina una red (solo si no tiene contenedores conectados).

Gestión de Volúmenes y Montajes

docker volume create <nombre_volumen>
Crea un volumen gestionado por Docker.
docker volume ls
Lista todos los volúmenes disponibles.
docker volume inspect <nombre_volumen>
Muestra información detallada sobre un volumen.
docker volume rm <nombre_volumen>
Elimina un volumen (solo si no está en uso).

Montaje de Carpetas y Volúmenes

  • Montaje Bind (Carpeta del Host):

    docker run -v /ruta/en/host:/ruta/en/contenedor <imagen>

    Comparte una carpeta del sistema anfitrión (host) dentro del contenedor.

  • Montaje Avanzado (Bind):

    docker run --mount type=bind,source=/ruta/en/host,target=/ruta/en/contenedor <imagen>

    Sintaxis alternativa y más explícita para montar carpetas.

  • Uso de Volúmenes Nombrados:

    docker run -d --name mi_contenedor --mount type=volume,source=mis_datos,target=/app/data ubuntu

    Utiliza un volumen gestionado por Docker (mis_datos) en lugar de una carpeta del host.

Automatización con Dockerfile y Docker Compose

Creación de Imágenes con Dockerfile

El Dockerfile define la estructura y los pasos para construir una imagen base.

Método de Construcción y Ejecución

  1. Construir la imagen: docker build -t mi_imagen . (Crea la imagen a partir del Dockerfile en el directorio actual).
  2. Ejecutar el contenedor: docker run -it --name mi_contenedor mi_imagen (Usa la imagen para iniciar un nuevo contenedor).

Orquestación Local con Docker Compose

Docker Compose permite definir y ejecutar aplicaciones multi-contenedor. El archivo docker-compose.yml especifica los servicios, redes y volúmenes.

Ejemplo de Docker Compose (Versión 3)

Este ejemplo define dos servicios: web (Nginx) y app (Node.js).

version: "3"
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  app:
    build: .
    command: "node app.js"
    volumes:
      - .:/app

Comando de Lanzamiento: docker compose up -d

Ejemplo de Stack Completo (WordPress + MySQL)

Configuración de un entorno de desarrollo con dependencias y variables de entorno.

version: "3"
services:
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: "1234"
      MYSQL_DATABASE: wordpress
  wordpress:
    image: wordpress
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: "1234"

Comandos de Docker Compose

docker compose up -d
Inicia los servicios definidos en el archivo docker-compose.yml en modo detached (segundo plano).
docker compose ps
Muestra el estado de los contenedores en ejecución gestionados por Compose.
docker compose down
Detiene y elimina los contenedores, redes y volúmenes definidos por Compose.
docker compose up --scale wordpress=3 -d
Escala el servicio de WordPress a tres instancias.

Introducción a Kubernetes (K8s)

Kubernetes es el orquestador de contenedores más utilizado, automatizando el despliegue, actualización, escalado y balanceo de aplicaciones. Se comunica mediante API REST y permite la migración entre nubes.

Arquitectura de Kubernetes

La arquitectura de K8s se divide en dos componentes principales:

  • Plano de Control (Master): Gestiona el estado del clúster. Incluye componentes clave como:
    • kube-apiserver: Punto de entrada para la comunicación.
    • etcd: Almacén de datos clave-valor del estado del clúster.
    • Controladores: Mantienen el estado deseado.
    • Planificador (Scheduler): Asigna pods a los nodos.
  • Nodos de Trabajo (Workers): Ejecutan los contenedores. Incluyen:
    • Kubelet: Agente que se comunica con el Plano de Control.
    • Containerd o CRI-O: Entornos de ejecución de contenedores.
    • Kube-proxy: Gestiona las reglas de red y el balanceo de carga.

Z

Entradas relacionadas: