簡體   English   中英

指定Docker容器的日志文件

[英]Specify log file for docker container

我有這組服務,希望對其進行記錄。 某些服務正在運行節點應用程序,因此輸出在docker logs命令中直接可見。
但是,有一些不同。 讓我們以我的Java應用程序為例。 它在包裝器中運行,但是日志記錄被寫入日志文件而不是STDOUT

我如何在docker logs輸出時掛接文件?

PS。 另一個應用程序是Nginx服務器上的PHP應用程序,也帶有它自己的日志文件。

-UPDATE
該應用程序是在Tanuki的Java Service Wrapper中運行的Java應用程序(.jar文件)。 內置的JAR具有Log4j記錄器,該記錄器通過DailyRollingFileAppender寫入logs/server.log 包裝器本身具有輸出,我可以通過>/dev/null 2>&1忽略輸出。 我只是將以下行添加到了Dockerfile中。

RUN ln -sf /dev/stdout /opt/myserver/logs/server.log

雖然這不起作用。 當我使用docker-compose up myserver時沒有輸出發送

將日志文件鏈接到stdout/stderr 例如在您的Dockerfile

RUN ln -sf /dev/stdout /<path>/logfile.log \
    && ln -sf /dev/stderr /<path>/errors-logfile.log

我找到了。 顯然您可以通過以下方式從Docker容器中寫入日志

RUN ln -sf /proc/1/fd/1 /opt/myserver/logs/server.log

在您的Dockerfile中

暫無
暫無

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

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