docker 部署springboot容器日誌處理
阿新 • • 發佈:2019-08-21
將jdk和需要的執行的jar構建成映象之後,執行成容器之後,可以實時的輸出日誌,但是當容器掛掉之後,日誌也便消失不見。在容器中可以執行bash命令的前提下,容器執行的時候會根據jar中配置的日誌目錄生成相應的日誌檔案,當容器停止的時候在容器中的所有的東西也會消失不見,查詢原因時就會遇到問題。
方式一:
docker logs containerId/containerName
這種方式存在的問題是隻能實時輸出層,儲存的路徑在容器內部,容器掛掉之後日誌變會消失不見。這種方式存在的問題是隻能實時輸出層,儲存的路徑在容器內部,容器掛掉之後日誌變會消失不見。
方式二:
資料卷的方式
docker run -d -v /home/vincent/logs/:/logs/ -p 8081:8080 txxs/springboot
前邊的是宿主機中日誌的目錄,後邊是容器中日誌檔案的輸出目錄,指定暴露的埠號是8081。
這樣就可以在外部docker的宿主機上看到日誌,但是問題是再次啟動映象的時候日誌會怎麼辦呢,這時候並不會重新新建檔案而是直接在原檔案的末尾新增,也就是這兩個容器的日誌檔案合併為同一個。改變的辦法可以很簡單,雖然映象都是一樣的,但是可以動態的生成日誌檔案的名字,這樣在啟動映象的時候因為日誌檔案的名字不同,也就不存在上邊的問題了。具體日誌檔案的名字可以使用時間或者IP+序號的