簡體   English   中英

訪問由 Docker 內的 .NET Core Console Application 生成的日志文件

[英]Access a log file generated by .NET Core Console Application inside Docker

我對 Docker 世界完全陌生,無論我在哪里搜索它,似乎都沒有適用的解決方案。 我知道很多關於日志記錄的問題都會問到同樣的問題,但我找不到一個基本的、詳細的解決方案來幫助我自己應用它。

tldr;

我目前有一個 .NET Core 5.0 控制台應用程序,它使用log4net將日志文件創建到本地目錄。 我想轉移應用程序以通過基於Windows-based docker 容器運行,並在運行時/運行后訪問log文件以查看其結果。

我看到了docker 文檔 | 但無法理解如何定義和稍后訪問日志文件。

這是這樣做的方法嗎? 我應該在我的應用程序上以不同的方式定義什么?

可能這與更改應用程序中的任何內容無關,您只需要確定日志在容器中存儲的目錄,然后在主機部分附加一個卷或綁定一個掛載。 因此,您可以:

  • 創建一個卷並在“docker run”期間將其與存儲日志的容器內的目錄相關聯。 可以使用 Docker 管理卷,這使其成為首選選項。 通過利用它們,您可以例如鍵入“docker inspect some-volume-name”來找出主機文件系統中您可以從卷中看到文件的位置,在這種情況下是您的日志。

  • 進行綁定掛載,這意味着您要將目錄從主機映射到容器中的目錄。 此選項非常簡單,但您將失去所有卷的功能。

帶體積的路徑

創建 docker 卷。

docker volume create logs-from-net-app

檢查卷以找出可以找到其內容的位置。

docker volume inspect logs-from-net-app

將其連接到容器上。

docker run --mount type=volume,source=logs-from-net-app,target=//c/path/to/logs "hello-world"

帶有安裝綁定的路徑

在 docker 運行期間進行綁定掛載

docker run --mount type=bind,source=C:\logs,target=//c/path/to/logs "hello-world"

暫無
暫無

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

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