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 ubuntuUtiliza 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
- Construir la imagen:
docker build -t mi_imagen .(Crea la imagen a partir del Dockerfile en el directorio actual). - 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.ymlen 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.