2017-06-16 81 views
1

我已經Docker化一個示例應用程序,並配置它登錄到STDOUT。然後運行容器,但未指定logging-driver。根據Docker文檔,STDOUT應該從容器中收集並存儲到JSON文件中...Docker JSON文件日誌驅動程序寫入文件的位置在哪裏?

但是在logging docs中沒有任何地方告訴你在哪裏可以找到這個JSON文件!

任何想法如何找到我的主機上的這個文件,並檢查其內容?

+0

我很困惑,從[這裏](https://docs.docker.com/engine/admin/logging/json-file/):「*默認情況下,Docker捕獲標準輸出(和標準錯誤)的所有容器中,並使用JSON格式將它們寫入文件。*「我如何誤讀它?我正在登錄到STDOUT/console,期望(根據我讀過的所有文檔,包括上面的內容)Docker從我的容器中收集STDOUT /控制檯並將其寫入到我主機上的某個文件中。我想知道該文件在我的主機上。 – smeeb

+1

請參閱[查看容器的日誌](https://docs.docker.com/engine/admin/logging/view_container_logs/) –

回答

2

docker inspect是你的朋友弄清楚一個容器的細節。有了這個,你可以通過運行下面的命令獲取該日誌路徑:

$ docker inspect --format='{{.LogPath}}' NAME|ID 

例如:

$ docker inspect --format='{{.LogPath}}' 2de7566c47eb 

希望它能幫助。

+0

感謝@Qasim(+1) - 當我執行docker ps時,我看到我的容器ID是'a6bd3a849fc0',所以當我運行'docker inspect --format ='{{。LogPath}}'a6bd3a849fc0'時,我得到'/var/lib/docker/containers/some-enormous-alphanumerical-num-json.log '。 – smeeb

+1

當我去尾尾那個日誌文件('tail -f/var/lib/docker/containers/some-huge-alphanumerical-num-json.log)'尾巴給我時'沒有這樣的文件或目錄。 '當然,當我檢查文件系統時,該文件不存在。那是怎麼回事?!順便說一句,我正在運行Mac的Docker ...但希望這不重要。 – smeeb

+1

@smeeb在Mac/Windows的情況下,這條路徑是指docker機器節點中的路徑。所以你可以在虛擬機中找到它。但在這種情況下,我更願意使用'docker logs a6bd3a849fc0',使用它您也可以使用'docker logs -f a6bd3a849fc0'跟蹤容器日誌。讓我知道如果它不能解決你的問題! –