Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

568
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda