簡體   English   中英

如何將 docker 容器的 STDOUT 捕獲到該容器外部的文件中?

[英]How can I capture STDOUT of a docker container to a file OUTSIDE of that container?

我有一個 docker 容器,當我運行它時,它會自動停止(因為應用程序崩潰)並且我無法弄清楚為什么它會崩潰,因為我找不到將 docker 應用程序的 STDOUT 捕獲到主機上的文件的方法文件系統。 如果沒有這個,當我的應用程序崩潰時,我的 docker 容器會關閉並自動刪除,因此沒有容器可以附加或從中獲取日志。

我在 docker 文檔中找不到有關如何解決此問題的幫助。

這有多種可能性,其中一些在評論中提到。

對我來說,為了日志記錄而進行重定向甚至安裝卷有點超出了 docker scope。相反,使用日志驅動程序並檢查主機或中央日志系統上的日志似乎是正確的方法。

這可以通過非常簡單的方式完成。 假設您要運行一個簡單的 nginx 容器。

docker run -dt --name web01 -p 8080:80 docker.io/library/nginx:latest

這將按照您的帖子(容器的 STDOUT)中所述進行日志記錄,可以通過docker logs進行檢查。

如果你想把日志放在別處,你可以運行如下命令:

docker run -dt --name web01 --log-driver journald -p 8080:80 docker.io/library/nginx:latest

這將在 journald 中生成日志條目。

我不完全確定你想如何獲得日志,但所有選項都記錄在案,非常好。

https://docs.docker.com/config/containers/logging/configure/

如果這是您想要的行為,您甚至可以更改默認日志驅動程序(適用於所有容器)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM