[英]Log file not created in a .NET Core application running in a Docker container
[英]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.