2014-12-04 87 views
11

因此,我有一些在Docker容器中運行的Python代碼。我使用Google的gcloud腳本啓動了本地env。我看到了基本的訪問方式日誌和健康檢查信息,但我不確定如何通過日誌消息傳遞我從Python應用程序寫入控制檯。有沒有一個參數可以用我的gcloud腳本來設置,或者我可以在Dockerfile中設置一些幫助的參數?如何顯示在Docker容器內運行的Python應用程序的輸出?

+3

你可以[attach](https://docs.docker.com/reference/commandline/cli/#attach)將自己放到正在運行的容器中,也可以使用[docker logs](https://docs.docker。 COM /參考/命令行/ CLI /#日誌)。你也可以使用[docker run -a](https://docs.docker.com/reference/commandline/cli/#run)啓動一個容器來附加自己。我希望這些信息可以幫助你。 – 2014-12-04 20:16:08

+1

共享'Dockerfile'獲得更多支持。現在在容器內的日誌在哪裏?通常將日誌打印到容器內的控制檯(stdout/stderr),然後您可以在外面使用'docker logs'。您可以隨時使用'docker exec'命令跳到內部查看日誌,如正常應用 – 2014-12-08 00:52:45

+0

感謝您的幫助。 「碼頭日誌」是我一直在尋找的。我認爲我缺少的部分是如何獲得正在運行的docker進程ID(docker ps),所以我可以將它提供給logs命令。如果你們中的任何一個都能寫出你的答案,我會將其標記爲正確的。 – Brandon 2014-12-08 21:29:25

回答

17

對於Python來記錄你的終端/命令行/控制檯上,從碼頭工人容器執行時,你應該有這個變量設置你的docker-compose.yml

environment: 
    - PYTHONUNBUFFERED=0 

這也是一個有效的解決方案,如果你是使用print進行調試。

+3

使我的一天。謝謝。 – 2016-11-19 21:16:59

+1

很高興可以幫忙:) – Sentient07 2016-11-20 11:37:03

+0

我正在使用docker-compose,其中一個容器正在運行Django。儘管正在打印來自「mange.py runserver」的消息(所有GET和POST請求都顯示出來),但我的打印消息沒有顯示,直到我添加了這個環境變量。 謝謝! – pitervergara 2016-12-18 15:35:41

相關問題