Sobes.tech
Junior

¿Cómo se pueden ver los registros en un contenedor en funcionamiento?

sobes.tech AI

Respuesta de la IA

# Ver todos los registros del contenedor
docker logs <container_id_or_name>

# Ver las últimas 100 líneas de registros
docker logs --tail 100 <container_id_or_name>

# Ver los registros desde el inicio de la ejecución del contenedor
docker logs --follow <container_id_or_name>

# Ver registros desde un momento específico
# Formato de tiempo: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>

# Ver registros en un período de tiempo determinado
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>

# Guardar registros en un archivo
docker logs <container_id_or_name> > container_logs.txt

El registro en contenedores se basa en la redirección de los flujos estándar de salida (stdout) y errores (stderr) de la aplicación dentro del contenedor. Docker recopila estos flujos y los proporciona a través del comando docker logs.

Enfoques alternativos:

  1. Uso de controladores de registro de Docker: Configuración del demonio de Docker para enviar registros a sistemas de registro centralizados (por ejemplo, ELK Stack, Splunk, CloudWatch Logs) mediante varios controladores de registro. Este es el método preferido para entornos de producción.

  2. Mapeo de volúmenes: Montar un volumen desde el sistema host dentro del contenedor, donde la aplicación escribe los registros.

    # ejemplo de docker-compose.yml
    services:
      my_app:
        image: my_app_image
        volumes:
          - /var/log/myapp:/app/logs # Mapeo de volumen
    

    Después de esto, los registros están disponibles en la máquina host en la ruta especificada.

  3. Instalación de agentes de registro: Desplegar un agente de registro (por ejemplo, Filebeat, Fluentd) en el contenedor o como un sidecar, que recopila los registros y los envía a un sistema centralizado.