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

utugiqy6  于 2023-06-29  发布在  Linux
关注(0)|答案(2)|浏览(182)

我有一个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
stszievb

stszievb1#

如[官方指南][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/
xesrikrc

xesrikrc2#

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

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

在这里,您可以阅读更多关于--since标志

相关问题