Cómo ver los registros de un contenedor Docker desasociado

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Docker ha revolucionado la forma en que desarrollamos y desplegamos aplicaciones, pero gestionar los registros (logs) de los contenedores desasociados (detached) puede ser un desafío. Este tutorial lo guiará a través del proceso de visualización de los registros de los contenedores Docker desasociados, lo que le permitirá comprender mejor y solucionar problemas en sus aplicaciones contenerizadas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/attach("Attach to Container") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/logs("View Container Logs") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") subgraph Lab Skills docker/attach -.-> lab-411630{{"Cómo ver los registros de un contenedor Docker desasociado"}} docker/exec -.-> lab-411630{{"Cómo ver los registros de un contenedor Docker desasociado"}} docker/logs -.-> lab-411630{{"Cómo ver los registros de un contenedor Docker desasociado"}} docker/info -.-> lab-411630{{"Cómo ver los registros de un contenedor Docker desasociado"}} docker/version -.-> lab-411630{{"Cómo ver los registros de un contenedor Docker desasociado"}} end

Comprender los contenedores Docker

Docker es una popular plataforma de código abierto que permite a los desarrolladores construir, desplegar y ejecutar aplicaciones en un entorno contenerizado. Los contenedores son paquetes de software livianos, independientes y ejecutables que incluyen todo lo necesario para ejecutar una aplicación, como el código, el entorno de ejecución (runtime), las herramientas del sistema y las bibliotecas.

¿Qué es un contenedor Docker?

Un contenedor Docker es una unidad estándar de software que empaqueta el código y todas sus dependencias, de modo que la aplicación se ejecute rápidamente y de manera confiable desde un entorno informático a otro. Los contenedores se crean a partir de imágenes Docker, que son los planos del contenedor. Las imágenes Docker se construyen utilizando un Dockerfile, un documento de texto que contiene todos los comandos que un usuario podría ejecutar en la línea de comandos para ensamblar una imagen.

graph TD A[Docker Image] --> B[Docker Container] B --> C[Application] B --> D[Runtime] B --> E[System Tools] B --> F[Libraries]

Beneficios de los contenedores Docker

  • Consistencia: Los contenedores garantizan que la aplicación se ejecutará de la misma manera, independientemente del entorno.
  • Portabilidad: Los contenedores se pueden ejecutar en cualquier máquina en la que esté instalado Docker, lo que facilita mover una aplicación de un entorno a otro.
  • Escalabilidad: Los contenedores se pueden escalar fácilmente hacia arriba o hacia abajo para satisfacer las demandas cambiantes.
  • Eficiencia: Los contenedores son livianos y utilizan menos recursos que las máquinas virtuales tradicionales.

Arquitectura de Docker

Docker utiliza una arquitectura cliente-servidor, donde el cliente Docker se comunica con el demonio Docker, que es responsable de construir, ejecutar y distribuir los contenedores Docker.

Componente Descripción
Cliente Docker La interfaz de usuario del sistema Docker. Permite a los usuarios interactuar con el demonio Docker.
Demonio Docker El proceso en segundo plano que gestiona los objetos Docker, como imágenes, contenedores, redes y volúmenes.
Registro Docker Un sistema de almacenamiento y distribución para imágenes Docker. El registro predeterminado es Docker Hub, un registro público proporcionado por Docker.
graph LR A[Docker Client] --> B[Docker Daemon] B --> C[Docker Registry] B --> D[Docker Images] B --> E[Docker Containers]

Visualización de registros (logs) de contenedores desasociados (detached)

Cuando se ejecuta un contenedor Docker en modo desasociado (utilizando la bandera -d), el contenedor se ejecuta en segundo plano y no se tiene acceso directo a su salida. Sin embargo, todavía se pueden ver los registros de un contenedor desasociado utilizando la interfaz de línea de comandos (CLI) de Docker.

Visualización de registros de un contenedor desasociado

Para ver los registros de un contenedor desasociado, se puede utilizar el comando docker logs. La sintaxis básica es:

docker logs [nombre_del_contenedor o id_del_contenedor]

Por ejemplo, supongamos que tiene un contenedor desasociado llamado my-app:

docker run -d --name my-app nginx

Puede ver los registros de este contenedor utilizando el siguiente comando:

docker logs my-app

Esto mostrará los registros del contenedor my-app en su terminal.

Visualización de registros en tiempo real

Si desea ver los registros de un contenedor desasociado en tiempo real, puede utilizar la bandera -f (seguir) con el comando docker logs:

docker logs -f my-app

Esto mantendrá abierta la salida de los registros en su terminal y mostrará continuamente nuevas entradas de registro a medida que se generen por el contenedor.

Filtrado de registros

También puede filtrar los registros por tiempo o por niveles de registro específicos. Por ejemplo, para ver las últimas 10 entradas de registro:

docker logs --tail 10 my-app

O para ver los registros de los últimos 5 minutos:

docker logs --since 5m my-app

También puede filtrar los registros por nivel de registro utilizando la bandera --until:

docker logs --until 5m my-app

Esto mostrará los registros de los últimos 5 minutos.

Controladores de registro (Logging drivers)

Docker admite varios controladores de registro, que determinan cómo se almacenan y gestionan los registros de los contenedores. El controlador de registro predeterminado es json-file, pero se puede configurar un controlador de registro diferente para el demonio de Docker o para contenedores individuales. Esto puede ser útil para integrar con sistemas externos de gestión de registros.

Técnicas prácticas de registro (logging)

Además del comando básico docker logs, hay varias técnicas prácticas que puede utilizar para gestionar y analizar los registros de sus contenedores Docker.

Registro en un archivo

En lugar de depender del controlador de registro json-file predeterminado, puede configurar sus contenedores Docker para que registren en un archivo en el sistema host. Esto puede ser útil para el almacenamiento y análisis a largo plazo de los registros.

Para registrar en un archivo, puede utilizar las banderas --log-driver y --log-opt al iniciar un contenedor:

docker run -d --name my-app --log-driver=local --log-opt=max-size=10m --log-opt=max-file=5 nginx

En este ejemplo, los registros se escribirán en un archivo en el sistema host, con un tamaño máximo de archivo de 10 MB y un máximo de 5 archivos de registro.

Registro en un sistema remoto

También puede configurar sus contenedores Docker para enviar registros a un sistema de registro remoto, como Elasticsearch, Splunk o Syslog. Esto puede ser útil para la gestión y análisis centralizados de registros.

Para registrar en un sistema remoto, puede utilizar las banderas --log-driver y --log-opt al iniciar un contenedor:

docker run -d --name my-app --log-driver=syslog --log-opt=syslog-address=tcp://192.168.1.100:514 nginx

En este ejemplo, los registros se enviarán a un servidor Syslog en la dirección IP 192.168.1.100 en el puerto 514.

Utilidades de registro

Hay varias utilidades de terceros que pueden ayudarlo a gestionar y analizar los registros de Docker de manera más efectiva. Algunas opciones populares incluyen:

  • Logspout: Un contenedor liviano que recopila y reenvía los registros de Docker a un servicio de registro centralizado.
  • Fluentd: Un recopilador de datos de código abierto que se puede utilizar para agregar y procesar los registros de Docker.
  • Graylog: Una potente plataforma de gestión y análisis de registros que puede ingerir y procesar los registros de Docker.

Estas herramientas pueden proporcionar características adicionales, como filtrado de registros, alertas y visualización, para ayudarlo a comprender y gestionar mejor los registros de sus contenedores Docker.

Resumen

En esta guía integral, aprenderá cómo ver los registros (logs) de los contenedores Docker desasociados (detached), explorará técnicas prácticas de registro y adquirirá las habilidades necesarias para gestionar y monitorear de manera efectiva sus aplicaciones basadas en Docker. Al final de este tutorial, tendrá una sólida comprensión del registro en Docker y estará preparado para manejar diversos escenarios de registro con confianza.