我有一個場景,我從 docker 容器運行可執行檔案(作為入口點)。
問題是,該可執行檔案不會將日志寫入標準輸出,而是寫入檔案。
我需要一種在前臺運行該可執行檔案的方法(這樣如果它崩潰,它也會使容器崩潰),但同時將日志從檔案傳輸到標準輸出。
關于如何做到這一點的任何建議?
uj5u.com熱心網友回復:
Linux 環境提供了一些特殊檔案,它們實際上中繼到其他檔案描述符。如果您將日志檔案設定為/dev/stdout或/dev/fd/1,它實際上會出現在主行程的標準輸出中。
該泊塢窗集線器nginx影像對這個整潔的變化。如果您查看它的Dockerfile,它會指定:
RUN ln -sf /dev/stdout /var/log/nginx/access.log
Nginx 應用程式配置將其日志檔案指定為/var/log/nginx/access.log. 如果您什么都不做,那就是指向 的符號鏈接/dev/stdout,因此訪問日志會出現在docker logs輸出中。但是,如果您希望將日志保存在檔案中,您可以系結掛載一個主機目錄,/var/log/nginx然后您將access.log作為檔案進入主機。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/312806.html
上一篇:來自主機的特定容器的`ps`
