動機:要通過計算一定數量的消息運行一個碼頭工人容器基本的健康檢查跨越標準輸出流過一定的時間範圍是否可以從Docker容器中讀取通過stdout傳遞的消息? (不`泊塢窗logs`)
近期目標:從在由docker exec
啓動的一個外殼中,讀取從主進程(PID 1)管道輸出到標準輸出的數據。
我甚至不確定我想要的是否可能。如果是這樣的話,爲什麼不這樣做會得到很多人的讚賞 - 並且有助於提高我的知識水平。
重現步驟:
啓動容器 -
container1
docker run -it --name container1 ubuntu bash -c -i "COUNT=0; while true; do echo Keep the dance floor beat going; ((COUNT++)); sleep 1; echo \"Count is: \${COUNT}\"; done;"
在另一終端窗口,
docker exec
啓動另一個過程在同一個容器docker exec -it container1 bash
我可以以某種方式tail
/print
/read
由PID 1通過stdout傳遞的消息?
我知道有一些解決方法 - 例如通過tee
管道或以其他方式寫入磁盤 - 但希望有一個神奇的子彈。
也許這? http://stackoverflow.com/a/17790708/2079781 – Rickkwa
感謝您的建議,但我無法得到解決方案來處理上面提供的複製。 – JacobWuzHere
我沒有找到快速解決方案,但您可以查看https:// github。com/gliderlabs/logspout,它以某種方式獲取容器的日誌輸出,並且通常將其輸出到遠程收集器。 (編輯:嗯,我認爲這也可以通過Docker主機,所以它可能不是你要找的) – schmunk