Docker環境安裝和在Tomcat中部署靜態專案和web專案
Docker 使用記錄
準備工作
- linux伺服器一臺
- ssh工具一個(主要用登入linux)
- 獲取該伺服器root許可權
- 耐心
環境搭建
登入伺服器
1. ssh -p 22 [email protected]伺服器地址
2. 輸入密碼登入
docker環境搭建
- 更新終端
$ sudo apt-get update
- 安裝CA證書,支援Https:
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
- .新增一個官方的GPG金鑰:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 驗證金鑰指紋:
$ sudo apt-key fingerprint 0EBFCD88
輸出的是:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 即正確。
- 下載amd64的官方最新穩定版Docker:
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
- 再次更新包資訊
$ sudo apt-get update
- 安裝Docker CE版本:
$ sudo apt-get install docker-ce
- 啟動docker
$ sudo service docker start
tomcat 環境搭建
- 查詢伺服器上的docker
docker search tomcat
- 下載映象到docker中
docker pull tomcat
- 檢視所有的映象
docker images
4 啟動tomcat
`docker run -p 8081:8080 tomcat:latest # 若埠被佔用,可以指定容器和主機的對映埠 前者是外圍訪問埠:後者是容器內部埠
-p 表示埠號,前一個8081是指我們訪問tomcat時的埠號,
後一個8080是tomcat啟動的一個容器在docker中執行的埠號,
指定埠號為了更明確的訪問tomcat。
tomcat:last last是指定的tomcat的標籤,相同的映象可以指定不同的標籤以做區分。
- 檢視docker下所有正在執行的容器
docker ps
- 外網環境訪問,具體的訪問路徑以不同的伺服器:埠為準
專案部署
- 準備工作
1.1準備一個靜態的頁面或者包含靜態頁面資料夾
1.2 準備一個JavaWeb專案打包成war包的檔案 - 本地檔案上傳到伺服器
通常從本地系統上傳到linux上,一般採用 scp 命令。如果你願意的話你可以在linux上建立幾個目錄專門用於存放用本地上傳的檔案路徑
返回 linux 系統
mkdir data
單檔案 `scp 本地檔案全路徑 [email protected]伺服器地址:/data`
資料夾 `scp -r 本地檔案全路徑 [email protected]伺服器地址:/data`
在Tomcat中部署靜態頁面
- 在tomcat 中如果存放靜態頁面 預設的路徑 應該是在 tomcat/webapps/ROOT下
- 如果 tomcat在執行應該先停止
2.1 檢視正在執行的容器
docker ps
docker stop 容器的編號
每一個正在執行的容器都有這樣的一個編號,後續進入容器環境裡面 都需要這個編號 ,下面就是介紹通過 exec 命令檢視容器tomcat裡面的專案
docker exec -it 容器編號 /bin/bash
- 對於靜態檔案的部署 最好使用 掛載的方式(-v 掛載宿主機配置檔案)(docker容器處理專案檔案路徑的一種方式),因為容器裡面修改檔案都是暫時的,還有就是容器停止後或者重啟後 所有的專案都丟失了,具體看看docker的官方建議
docker run -d -v /data/temp:/usr/local/tomcat/webapps/ROOT -p 8081:8080 tomcat:latest
建議測試環境都用這種方式
在Tomcat中部署web專案
- 在tomcat 中如果存放靜態頁面 預設的路徑 應該是在 tomcat/webapps下
- 利用掛在的方式將外部檔案放到容器tomcat中
docker run -d -v /data/demo.war:/usr/local/tomcat/webapps/demo.war -p 8081:8080 tomcat:latest
這裡面的 data/demo.war ,data是自己在前面建立的目錄;
在生產環境中部署專案
官網的建議是建立一個DockerFIle去替換,這應該是最好的方式,但是卻不在今天的文章中(具體的可以參考其他人的部落格或者看官網的資料),改天再研究哈;