Docker - 第十四章 | 安裝Apache Tomcat Server
在上一章Docker - 第十三章 | 安裝Apache Server。這邊要介紹於Tomcat (java應用伺服器(動態解析,如JSP、PHP))。如果有興趣可以先看看這篇文章Apache和Tomcat的區別。
搜尋 Image
Searh指令進化一下,只搜尋10顆星以上的。
1 | docker search -f=stars=10 tomcat |
拉取 Image
1 | docker pull tomcat |
查看 Image
1 | docker images |
執行 Image
使用volume
由於docker卷是持久性的,因此可以專門為此目的建立volume。
1 | docker volume create --name tomcat-webapps |
- -d :後台執行 Container ,並返回ID
- -p 8080:8080 :將 Container 的 8080 Port 映射到主機的 8080 Port (前面代表主機,後面代表容器)
- -name mytomcat :將 Container 取名為 mytomcat
- -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
- -v tomcat-webapps:/usr/local/tomcat/webapps/ :使用剛建立的volume,tomcat-webapps 掛載到 Container 的 /usr/local/tomcat/webapps/。
- tomcat :指定安裝的鏡像tomcat
掛載主機目錄
這不可移植,因為它依賴於主機上具有正確權限的目錄。但是,在需要將此卷分配給某些特定底層存儲的某些情況下,它可能很有用。
先建立一個httpd.conf檔於$PWD/conf/下,在掛載的時候才不會因為檔案不存在造成啟動失敗。
1 | cd /Users/morose/Documents/Temp/Docker/Tomcat |
- -d :後台執行 Container ,並返回ID
- -p 8080:8080 :將 Container 的 8080 Port 映射到主機的 8080 Port (前面代表主機,後面代表容器)
- -name mytomcat :將 Container 取名為 mytomcat
- -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
- -v $PWD/webapps/:/usr/local/tomcat/webapps/ :將主機當前目錄下的 webapps 掛載到 Container 的 /usr/local/tomcat/webapps/。
- tomcat :指定安裝的鏡像tomcat
進入 Container
1 | docker exec -it mytomcat bash |
- -i :即使沒有附加也保持STDIN 打開
- -t :分配一個偽終端
測試 (volume)
- 使用volume建立Container
- 開啟瀏覽器 瀏覽 http://localhost
- 即可看到Tomcat已經成功起來。
- 可以進入 Container 看看webapps底下,會看到原本Tomcat一些預設projects
測試 (掛載主機目錄)
- 使用掛載主機目錄建立Container
- 這邊使用SpringBoot - 第四章 | Web開發 的專案來Export war檔
- 將chapter-4.war,丟到掛載的目錄下,將會自動編譯
- 開啟瀏覽器 瀏覽 http://localhost:8080/chapter-4/freemarker/map?name=J.J.Huang
恭喜你已經搭建了Apache Tomcat Server,這邊只是簡單的使用Docker快速建置,當然有更多詳細參數設定或是指令等等,這邊就不特別列出,畢竟我也不熟,哈。
註:以上參考了
dockerhub 的 tomcat 文章。
apache
Docker 安装 Tomcat
Apache和Tomcat的區別