Like Share Discussion Bookmark Smile

J.J. Huang   2019-06-02   Docker   瀏覽次數:次   DMCA.com Protection Status

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
2
docker volume create --name tomcat-webapps
docker run -d -p 8080:8080 --name mytomcat --restart always -v tomcat-webapps:/usr/local/tomcat/webapps/ tomcat
  • -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
2
cd /Users/morose/Documents/Temp/Docker/Tomcat
docker run -d -p 8080:8080 --name mytomcat --restart always -v $PWD/webapps/:/usr/local/tomcat/webapps/ 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

測試 (掛載主機目錄)

恭喜你已經搭建了Apache Tomcat Server,這邊只是簡單的使用Docker快速建置,當然有更多詳細參數設定或是指令等等,這邊就不特別列出,畢竟我也不熟,哈。


註:以上參考了
dockerhubtomcat 文章。
apache
Docker 安装 Tomcat
Apache和Tomcat的區別