Comandos esenciales de Docker y conceptos fundamentales de Shell

Comandos fundamentales de Docker

Docker permite empaquetar aplicaciones y sus dependencias en contenedores aislados. A continuación, se detallan los comandos esenciales para la gestión de imágenes y contenedores.

Gestión de imágenes

Las imágenes son plantillas de solo lectura que contienen las instrucciones para crear un contenedor.

  • Listar imágenes locales:``` docker images
  • Eliminar una imagen:``` docker rmi node:18-alpine
  • Descargar una imagen desde un registro:``` docker pull python:3.11-slim
  • Publicar una imagen en un registro:``` docker push registry.example.com/my-app:2.0.1
  • Autenticarse en un registro privado:``` docker login registry.example.com
    
    

Gestión de contenedores

Un contenedor es una instancia en ejecución de una imagen.

  • Listar contenedores en ejecución:``` docker ps

    Para incluir contenedores detenidos:

    docker ps -a
  • Iniciar un contenedor detenido:``` docker start web-server-01
  • Detener un contanedor en ejecución:``` docker stop web-server-01
  • Reiniciar un contenedor:``` docker restart web-server-01
  • Visualizar registros (logs) en tiempo real:``` docker logs -f --tail 50 web-server-01
  • Copiar archivos desde un contenedor al host:``` docker cp web-server-01:/var/log/app/error.log ./local_logs/
  • Acceder a la terminal de un contenedor:``` docker exec -it web-server-01 /bin/sh
    
    

Exportación e importación de imágenes

Para transferir imágenes sin utilizar un registro, se pueden exportar e importar como archivos tar.

  • Exportar una imagen a un archivo:``` docker save -o redis-backup.tar redis:7.2-alpine
  • Importar una imagen desde un archivo:``` docker load -i redis-backup.tar
    
    

Ejecución y eliminación de contenedores

  • Crear y ejecutar un nuevo contenedor:```

    Ejecutar en segundo plano con mapeo de puertos

    docker run -d -p 8080:80 --name frontend-app nginx:latest
  • Eliminar un contenedor:``` docker rm frontend-app

    Forzar la eliminación si está en ejecución:

    docker rm -f frontend-app
    
    

Conceptos fundamentales de Shell

El Shell actúa como un intérprete de comandos que procesa las instrucciones del usuario y las transmite al sistema operativo.

Definición y tipos de Shell

El Shell es una interfaz de línea de comandos que interpreta y ejecuta scripts y comandos. Las variantes más comunes incluyen:

  • Bash (Bourne Again Shell): El estándar predeterminado en la mayoría de las distribuciones Linux.
  • sh (Bourne Shell): La versión original, ampliamente utilizada por su compatibilidad.
  • zsh (Z Shell): Popular por sus funciones avanzadas de autocompletado y personalización.

Manejo de argumentos en scripts

Los scripts de Shell pueden recibir parámetros directamente desde la línea de comandos. Estos se acceden mediante variables posicionales:

  • $1, $2, etc.: Representan el primer, segundo y subsiguientes argumentos.
  • $#: Indica el número total de argumentos pasados.

Ejemplo de implementación en un script de despliegue (deploy.sh):

#!/bin/bash
ENVIRONMENT=$1
VERSION=$2

echo "Desplegando versión $VERSION en el entorno $ENVIRONMENT"
echo "Total de parámetros recibidos: $#"

Ejecución: ./deploy.sh production 3.4.0

Enlaces duros y enlaces simbólicos

El sistema de archivos permite crear referencias a archivos existentes mediante enlaces.

  • Enlace duro (Hard Link): Crea una referencia directa al mismo inodo en el disco. Si el archivo original se elimina, el enlace duro mantiene los datos intactos. ``` ln database_config.ini db_config_backup.ini
  • Enlace simbólico (Soft Link): Funciona como un acceso directo que apunta a la ruta del archivo original. Si el archivo original se borra, el enlace simbólico queda roto. ``` ln -s /etc/nginx/nginx.conf ./nginx_shortcut.conf

Etiquetas: Docker shell bash linux contenedores

Publicado el 7-25 20:18