如何在重新启动前查看容器的日志



我有一个容器,它在14小时前重新启动。容器从7周开始运行。我想每隔一段时间检查一下集装箱日志。当我运行以下命令时,我看到没有输出

docker container logs pg-connect --until 168h --since 288h

当我运行以下命令时,我只看到容器重新启动后的日志。

docker logs pg-connect 

知道如何为容器检索旧日志吗?

更多信息如果有助于

> docker ps
CONTAINER ID   IMAGE                          COMMAND                  CREATED       STATUS        PORTS     NAMES
9f08fb6fb0fb   kosta709/alpine-plus:0.0.2     "/connectors-restart…"   7 weeks ago   Up 14 hours             connectors-monitor
7e919a253a29   debezium/connect:1.2.3.Final   "/docker-entrypoint.…"   7 weeks ago   Up 14 hours             pg-connect
>
>
> docker logs 7e919a253a29 -n 2
2022-08-26 06:37:10,878 INFO   ||  WorkerSourceTask{id=relations-0} Committing offsets   [org.apache.kafka.connect.runtime.WorkerSourceTask]
2022-08-26 06:37:10,878 INFO   ||  WorkerSourceTask{id=relations-0} flushing 0 outstanding messages for offset commit   [org.apache.kafka.connect.runtime.WorkerSourceTask]
> docker logs 7e919a253a29 |head
org.apache.kafka.common.KafkaException: Producer is closed forcefully.
at org.apache.kafka.clients.producer.internals.RecordAccumulator.abortBatches(RecordAccumulator.java:766)
at org.apache.kafka.clients.producer.internals.RecordAccumulator.abortIncompleteBatches(RecordAccumulator.java:753)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:279)
at java.base/java.lang.Thread.run(Thread.java:834)
2022-08-24 16:13:06,567 ERROR  ||  WorkerSourceTask{id=session-0} failed to send record to barclays.public.session:   [org.apache.kafka.connect.runtime.WorkerSourceTask]
org.apache.kafka.common.KafkaException: Producer is closed forcefully.
at org.apache.kafka.clients.producer.internals.RecordAccumulator.abortBatches(RecordAccumulator.java:766)
at org.apache.kafka.clients.producer.internals.RecordAccumulator.abortIncompleteBatches(RecordAccumulator.java:753)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:279)
>
> ls -lart /var/lib/docker/containers/7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1/
total 90720
drwx------ 2 root root        6 Jul  1 10:39 checkpoints
drwx--x--- 2 root root        6 Jul  1 10:39 mounts
drwx--x--- 4 root root      150 Jul  1 10:40 ..
-rw-r----- 1 root root 10000230 Aug 24 16:13 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.9
-rw-r----- 1 root root 10000163 Aug 24 16:13 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.8
-rw-r----- 1 root root 10000054 Aug 24 16:16 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.7
-rw-r----- 1 root root 10000147 Aug 24 16:42 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.6
-rw-r----- 1 root root 10000123 Aug 24 16:42 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.5
-rw-r----- 1 root root 10000019 Aug 24 16:42 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.4
-rw-r----- 1 root root 10000159 Aug 24 16:42 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.3
-rw-r----- 1 root root 10000045 Aug 24 16:42 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.2
-rw-r--r-- 1 root root      199 Aug 25 16:30 hosts
-rw-r--r-- 1 root root       68 Aug 25 16:30 resolv.conf
-rw-r--r-- 1 root root       25 Aug 25 16:30 hostname
-rw------- 1 root root     7205 Aug 25 16:30 config.v2.json
-rw-r--r-- 1 root root     1559 Aug 25 16:30 hostconfig.json
-rw-r----- 1 root root 10000085 Aug 25 16:31 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log.1
drwx--x--- 4 root root     4096 Aug 25 16:31 .
-rw-r----- 1 root root  2843232 Aug 26 06:38 7e919a253a296494b74361e258e49d8c3ff38f345455316a15e1cb28cf556fa1-json.log

如【官方指南】[1]所述:

The docker logs command batch-retrieves logs present at the time of execution.```
To solve this issue you should instrument the container software to log its output to a persistent (rotated if you want) log file.

[1]: https://docs.docker.com/engine/reference/commandline/logs/

据我所知,每个容器都可以在磁盘上生成一个默认大小的日志文件。因此,如果最新日志适合日志文件并且不超过,则可以在重新启动之前查看最新日志。因此,您可以将日志保存到一个临时文件中并对其进行检查

docker logs --since <starting_date> continer_id  >& logs.txt

在这里你可以阅读更多关于--since标志的信息

最新更新