2015-01-21 73 views
0

我已經開始瀏覽文檔並開始瞭解docker。使用官方的tomcat:7-jre7圖像創建一個圖像,並在適當的地方卡住了一場戰爭,它開始/停止很好。如何更新Docker Tomcat容器中的war文件

我的參考文件是:

FROM tomcat:7-jre7 
    MAINTAINER: me, [email protected] 
    ADD app.war /usr/local/tomcat/webapps 
    EXPOSE 8080 
    CMD ["catalina.sh", "run"] 

現在,多數民衆贊成好,我有兩個問題:

  1. 在一些不好的情況下,我可以在SSH和查看日誌文件或什麼?
  2. 如何更新war文件?有什麼方法來ssh/scp中的新文件?

到目前爲止,我已經嘗試做啓動原始圖像:

docker run -t <_id> /bin/bash 

,然後做像下面從不同的會話的連接,但didnt'r做太多 - 我所看到的是一個黑色的屏幕。

docker attach <running_container_id> 

我想到了另一種方法(未經測試)是分享從主機文件 - 希望更新WAR文件將觸發tomcat的重新部署war文件?有沒有人試過這個?

有沒有更簡單的方法來做到這一點?

感謝您的任何意見,感謝。

+1

我認爲這個想法是日誌輸出通過管道傳輸到主機(或syslogd或容器外的其他東西),並且您通過重新構建泊塢窗鏡像來更新WAR。 – Thilo 2015-01-21 02:18:52

+0

啊,我明白了。所以有些停機時間,然後服務正常?在我開始docker的初始會話中,我可以看到日誌 - 所以我不會過分擔心,但更新內容將很重要。 – Josh 2015-01-21 02:27:05

+0

回覆:停機時間:我認爲這裏的想法是在舊容器仍在運行時啓動新容器,將Web代理指向新容器,然後關閉舊容器。 – Thilo 2015-01-21 02:30:17

回答

0

根據你想要做什麼,你有幾種選擇。最簡單的選擇是簡單地讓你構建的war文件的文件夾也包含上面的Dockerfile。然後,每當war文件更新時,啓動docker build和docker run。這很容易利用圖自動爲好,喜歡的東西:

tomcat: 
    build: ./war 

現在只需運行fig up每當戰爭文件的變化和新的集裝箱將從Dockerfile在war文件夾獲取建成並運行。

相關問題