Cómo usar los comandos básicos de Docker

DockerBeginner
Practicar Ahora

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

  1. Consistencia entre entornos
  2. Implementación más rápida
  3. Escalabilidad mejorada
  4. Mejor utilización de recursos
  5. 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.