Docker mira el registro de un contenedor salido
¿Hay alguna forma de que pueda ver el registro de un contenedor que ha salido?
Puedo obtener el id de contenedor del contenedor salido usando docker ps -a
pero quiero saber qué pasó cuando se estaba ejecutando.
4 answers
Uso docker logs
. También funciona para contenedores detenidos y captura todos los flujos STDOUT y STDERR del proceso principal del contenedor:
$ docker run -d --name test debian echo "Hello World"
02a279c37d5533ecde76976d7f9d1ca986b5e3ec03fac31a38e3dbed5ea65def
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
49daa9d41a24 debian "echo test" 2 minutes ago Exited (0) 2 minutes ago test
$ docker logs -t test
2016-04-16T15:47:58.988748693Z Hello World
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-16 15:53:01
docker logs --tail=50 <container id>
para las últimas cincuenta líneas - útil cuando su contenedor ha estado funcionando durante mucho tiempo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-19 09:15:28
Para ver directamente el archivo de registro de un contenedor salido en less, desplazado hasta el final del archivo, utilizo:
docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less +G
Ejecutar como ./viewLogs.sh NOMBRE DEL CONTENEDOR
Este método tiene el beneficio sobre los enfoques basados en docker logs
, que el archivo se abre directamente, en lugar de transmitirse.
Sudo es necesario, ya que el archivo LogPath/por lo general está en propiedad de la raíz
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-17 09:58:45
Puede usar el siguiente comando para copiar registros incluso desde un contenedor salido:
docker
cp
container_name:
path_of_file_in_container destination_path_locally
Eg:
docker cp sravya:/tmp/report /root/mylog
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-07 12:16:04