Introducción
Docker ha revolucionado el desarrollo de software al proporcionar una plataforma potente para la contenedorización. Este tutorial completo te guiará a través de los comandos fundamentales de Docker, ayudando a desarrolladores y administradores de sistemas a comprender cómo gestionar de forma eficiente los contenedores, imágenes y redes de Docker. Ya seas principiante o quieras refrescar tus habilidades con Docker, esta guía proporcionará información práctica sobre el uso de la interfaz de línea de comandos de Docker.
Conceptos Fundamentales de Docker
¿Qué es Docker?
Docker es una plataforma de código abierto diseñada para automatizar la implementación, escalado y gestión de aplicaciones mediante la contenedorización. Permite a los desarrolladores empaquetar aplicaciones con todas sus dependencias en unidades estandarizadas llamadas contenedores, que pueden ejecutarse de forma consistente en diferentes entornos informáticos.
Conceptos Clave de Docker
1. Contenedores
Los contenedores son paquetes ejecutables, autónomos y ligeros que incluyen todo lo necesario para ejecutar una aplicación:
- Código
- Entorno de ejecución
- Herramientas del sistema
- Bibliotecas del sistema
- Configuraciones
graph LR
A[Código de la Aplicación] --> B[Contenedor]
C[Dependencias] --> B
D[Bibliotecas del Sistema] --> B
E[Configuración] --> B
2. Imágenes
Las imágenes de Docker son plantillas de solo lectura utilizadas para crear contenedores. Sirven como planos para la creación de contenedores y pueden almacenarse en registros como Docker Hub.
3. Dockerfile
Un Dockerfile es un documento de texto que contiene instrucciones para construir una imagen de Docker. Define el entorno, las dependencias y la configuración de una aplicación.
Ejemplo de Dockerfile:
FROM ubuntu:22.04
RUN apt-get update
RUN apt-get install -y python3
COPY . /app
WORKDIR /app
CMD ["python3", "app.py"]
4. Arquitectura de Docker
graph TB
A[Cliente Docker] --> B[Daemon de Docker]
B --> C[Entorno de Ejecución de Contenedores]
B --> D[Registro de Imágenes]
B --> E[Almacenamiento de Imágenes]
5. Contenedores vs Máquinas Virtuales
| Característica | Contenedores | Máquinas Virtuales |
|---|---|---|
| Uso de Recursos | Ligero | Elevado |
| Tiempo de Inicio | Segundos | Minutos |
| Nivel de Aislamiento | Nivel de proceso | Nivel de sistema operativo completo |
| Rendimiento | Alto | Menor |
Beneficios de Docker
- Consistencia entre entornos
- Implementación más rápida
- Escalabilidad mejorada
- Mejor utilización de recursos
- Gestión simplificada de dependencias
Casos de Uso
- Arquitectura de microservicios
- Integración Continua/Entrega Continua (CI/CD)
- Desarrollo de aplicaciones nativas de la nube
- Pruebas de aplicaciones simplificadas
Introducción a LabEx
LabEx proporciona entornos de aprendizaje interactivos de Docker que ayudan a los desarrolladores a comprender y practicar rápidamente las tecnologías de contenedorización.
Guía de Instalación de Docker
Requisitos Previos
Antes de instalar Docker, asegúrate de que tu sistema Ubuntu 22.04 cumple con los siguientes requisitos:
- Sistema operativo de 64 bits
- Versión del kernel 3.10 o superior
- Recursos del sistema suficientes
Métodos de Instalación
1. Instalación Usando el Repositorio
Paso 1: Actualizar el Índice de Paquetes
sudo apt-get update
Paso 2: Instalar Paquetes Requeridos
sudo apt update
sudo apt-get install ca-certificates curl gnupg lsb-release
Paso 3: Añadir 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
Paso 4: Configurar el Repositorio de Docker
echo "deb [arch=$(dpkg --print-architecture) 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
Paso 5: Instalar el Motor Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2. Verificar la Instalación
sudo docker --version
sudo docker run hello-world
Flujo de Instalación
graph TD
A[Actualizar Sistema] --> B[Instalar Dependencias]
B --> C[Añadir Clave GPG]
C --> D[Configurar Repositorio]
D --> E[Instalar Docker]
E --> F[Verificar Instalación]
Pasos Post-Instalación
1. Gestionar Docker como Usuario No Raíz
sudo usermod -aG docker $USER
newgrp docker
2. Configurar Docker para Arrancar en el Arranque
sudo systemctl enable docker
sudo systemctl start docker
Opciones de Instalación de Docker
| Método | Pros | Contras |
|---|---|---|
| Repositorio | Actualizaciones fáciles | Requiere conexión a internet |
| Paquete Oficial | Control directo | Actualizaciones manuales |
| Instalación con Script | Configuración rápida | Menos seguro |
Solución de Problemas Comunes
- Comprobar la compatibilidad del sistema
- Verificar la conectividad de la red
- Asegurarse de que hay suficiente espacio en disco
- Actualizar los paquetes del sistema regularmente
Entorno de Aprendizaje Docker de LabEx
LabEx proporciona tutoriales interactivos de instalación de Docker y entornos de práctica para ayudar a los desarrolladores a dominar rápidamente y eficazmente las tecnologías de contenedorización.
Requisitos del Sistema Recomendados
| Componente | Especificación Mínima |
|---|---|
| CPU | 2 núcleos |
| RAM | 4 GB |
| Espacio en Disco | 20 GB |
| SO | Ubuntu 22.04 LTS |
Comandos Básicos de Docker
Estructura de los Comandos de Docker
Los comandos de Docker siguen una sintaxis estándar:
docker [comando] [opciones] [argumentos]
Comandos de Administración de Imágenes
1. Extraer Imágenes
docker pull ubuntu:latest
docker pull nginx:alpine
2. Listar Imágenes
docker images
docker image ls
3. Eliminar Imágenes
docker rmi ubuntu:latest
docker image rm nginx:alpine
Comandos de Administración de Contenedores
1. Crear y Ejecutar Contenedores
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash
2. Listar Contenedores
docker ps ## Contenedores en ejecución
docker ps -a ## Todos los contenedores
3. Iniciar, Detener y Reiniciar Contenedores
docker start web-server
docker stop web-server
docker restart web-server
4. Eliminar Contenedores
docker rm web-server
docker container prune ## Eliminar todos los contenedores detenidos
Comandos de Interacción con Contenedores
1. Ejecutar Comandos dentro del Contenedor
docker exec -it web-server bash
docker exec web-server ls /var/www/html
2. Ver Registros del Contenedor
docker logs web-server
docker logs -f web-server ## Seguir la salida del registro
Flujo de Trabajo de Docker
graph TD
A[Extraer Imagen] --> B[Crear Contenedor]
B --> C[Iniciar Contenedor]
C --> D[Interactuar/Ejecutar]
D --> E[Detener Contenedor]
E --> F[Eliminar Contenedor]
Comandos Avanzados de Docker
1. Construir Imágenes Personalizadas
docker build -t myapp:v1 .
2. Volúmenes de Docker
docker volume create myvolume
docker run -v myvolume:/app nginx
3. Administración de Redes
docker network create mynetwork
docker run --network mynetwork nginx
Categorías Comunes de Comandos de Docker
| Categoría | Propósito | Ejemplos de Comandos |
|---|---|---|
| Administración de Imágenes | Gestionar imágenes de Docker | pull, push, build |
| Administración de Contenedores | Controlar contenedores | run, start, stop |
| Administración del Sistema | Información del sistema Docker | info, version |
| Administración de Redes | Gestionar redes | network create |
| Administración de Volúmenes | Gestionar datos persistentes | volume create |
Buenas Prácticas
- Usar etiquetas de imagen específicas
- Limpiar recursos no utilizados
- Usar Docker Compose para configuraciones complejas
- Implementar compilaciones multietapa
Aprendizaje de Docker de LabEx
LabEx ofrece entornos interactivos para practicar estos comandos de Docker, ayudando a los desarrolladores a adquirir habilidades prácticas de contenedorización de forma eficiente.
Opciones Útiles de Comandos de Docker
| Opción | Descripción | Ejemplo |
|---|---|---|
-d |
Modo desacoplado | docker run -d nginx |
-it |
Terminal interactivo | docker run -it ubuntu |
--name |
Nombrar un contenedor | docker run --name web nginx |
-p |
Mapeo de puertos | docker run -p 8080:80 nginx |
Resumen
Al dominar estos comandos básicos de Docker, has adquirido habilidades esenciales para la gestión y despliegue de contenedores. Docker ofrece una solución robusta para crear, ejecutar y gestionar contenedores en diferentes entornos. A medida que sigas explorando las capacidades de Docker, recuerda que estos comandos fundamentales forman la base de estrategias eficientes de contenedorización. Practica y experimenta con estos comandos para convertirte en un experto en la tecnología Docker y optimizar tus flujos de trabajo de desarrollo.



