Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

562
Views
cómo volver a conectarse a los registros de una ventana acoplable: siga donde se eliminó el archivo de registro

Tengo un contenedor docker ejecutándose en una pequeña instancia de AWS con espacio en disco limitado. Los registros eran cada vez más grandes, así que usé los siguientes comandos para eliminar los archivos de registro cada vez mayores:

 sudo -s -H find /var -name "*json.log" | grep docker | xargs -r rm journalctl --vacuum-size=50M

Ahora quiero ver cuál es el comportamiento de uno de los contenedores docker en ejecución, pero afirma que el archivo de registro ha desaparecido (del comando rm anterior):

 ubuntu@xyz:~$ docker logs --follow name_of_running_docker_1 error from daemon in stream: Error grabbing logs: open /var/lib/docker/containers/d9562d25787aaf3af2a2bb7fd4bf00994f2fa1a4904979972adf817ea8fa57c3/d9562d25787aaf3af2a2bb7fd4bf00994f2fa1a4904979972adf817ea8fa57c3-json.log: no such file or directory

Me gustaría poder ver de nuevo lo que sucede en el contenedor en ejecución, así que probé:

 sudo touch /var/lib/docker/containers/d9562d25787aaf3af2a2bb7fd4bf00994f2fa1a4904979972adf817ea8fa57c3/d9562d25787aaf3af2a2bb7fd4bf00994f2fa1a4904979972adf817ea8fa57c3-json.log

Y nuevamente docker follow , pero al interactuar con el software que debería producir registros, puedo ver que no sucede nada.

¿Hay alguna forma de rescatar la impresión en el archivo de registro nuevamente sin eliminar (reiniciar) los contenedores?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

¿Hay alguna forma de rescatar la impresión en el archivo de registro nuevamente sin eliminar (reiniciar) los contenedores?

Sí, pero es más un truco que una solución real. Nunca debe interactuar con los datos de /var/lib/docker directamente . Segúnlos documentos de Docker :

parte del sistema de archivos host [que] es administrado por Docker ( /var/lib/docker/volumes/ en Linux). Los procesos que no son de Docker no deben modificar esta parte del sistema de archivos.


Para que este truco funcione, debe configurar su Docker Daemon para mantener activos los contenedores durante el tiempo de inactividad antes de ejecutar nuestro contenedor por primera vez. Por ejemplo, configurando su /etc/docker/daemon.json con:

 { "live-restore": true }

Esto requiere el reinicio de Daemon, como sudo systemctl restart docker .

Luego cree un contenedor y elimine su archivo .log :

 $ docker run --name myhttpd -d httpd:alpine $ sudo rm $(docker inspect myhttpd -f '{{ .LogPath }}') # Docker is not happy $ docker logs myhttpd error from daemon in stream: Error grabbing logs: open /var/lib/docker/containers/xxx-json.log: no such file or directory

Reinicie Daemon (con restauración en vivo), esto hará que Docker vuelva a tomar la administración de nuestro contenedor y vuelva a crear nuestro archivo de registro. Sin embargo, los registros generados antes de la eliminación del archivo de registro se pierden.

 $ sudo systemctl restart docker $ docker logs myhttpd # works! and log file is created back

Nota: esta no es una característica documentada u oficial de Docker, simplemente un comportamiento que observé con mis propios experimentos usando Docker 19.03 . Puede que no funcione con otras versiones de Docker

Con la restauración en vivo habilitada, nuestro proceso de contenedor sigue ejecutándose aunque Docker Daemon esté detenido. En el reinicio del demonio Docker, probablemente de alguna manera intente volver a leer desde el proceso aún vivo stdout y stderr y redirigir la salida a nuestro archivo de registro (por lo tanto, volver a crearlo)

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!