Docker 使用記錄

準備工作

  1. linux伺服器一臺
  2. ssh工具一個(主要用登入linux)
  3. 獲取該伺服器root許可權
  4. 耐心

環境搭建

登入伺服器

1. ssh -p 22 [email protected]伺服器地址
2. 輸入密碼登入

docker環境搭建

  1. 更新終端

$ sudo apt-get update

  1. 安裝CA證書,支援Https:

$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common

  1. .新增一個官方的GPG金鑰:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  1. 驗證金鑰指紋:

$ sudo apt-key fingerprint 0EBFCD88
輸出的是:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 即正確。

  1. 下載amd64的官方最新穩定版Docker:

$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

  1. 再次更新包資訊

$ sudo apt-get update

  1. 安裝Docker CE版本:

$ sudo apt-get install docker-ce

  1. 啟動docker

$ sudo service docker start

tomcat 環境搭建

  1. 查詢伺服器上的docker

docker search tomcat

star最多的一個就行

  1. 下載映象到docker中

docker pull tomcat

  1. 檢視所有的映象

docker images

docker安裝的映象
4 啟動tomcat

`docker run -p 8081:8080 tomcat:latest # 若埠被佔用,可以指定容器和主機的對映埠 前者是外圍訪問埠:後者是容器內部埠

-p 表示埠號,前一個8081是指我們訪問tomcat時的埠號,
後一個8080是tomcat啟動的一個容器在docker中執行的埠號,
指定埠號為了更明確的訪問tomcat。
tomcat:last last是指定的tomcat的標籤,相同的映象可以指定不同的標籤以做區分。

  1. 檢視docker下所有正在執行的容器

docker ps

  1. 外網環境訪問,具體的訪問路徑以不同的伺服器:埠為準

專案部署

  1. 準備工作
    1.1準備一個靜態的頁面或者包含靜態頁面資料夾
    1.2 準備一個JavaWeb專案打包成war包的檔案
  2. 本地檔案上傳到伺服器

通常從本地系統上傳到linux上,一般採用 scp 命令。如果你願意的話你可以在linux上建立幾個目錄專門用於存放用本地上傳的檔案路徑

返回 linux 系統
mkdir data

單檔案 `scp 本地檔案全路徑  [email protected]伺服器地址:/data`
資料夾 `scp -r 本地檔案全路徑  [email protected]伺服器地址:/data`

在Tomcat中部署靜態頁面

  1. 在tomcat 中如果存放靜態頁面 預設的路徑 應該是在 tomcat/webapps/ROOT下
  2. 如果 tomcat在執行應該先停止
    2.1 檢視正在執行的容器

docker ps

容器的編號

docker stop 容器的編號

每一個正在執行的容器都有這樣的一個編號,後續進入容器環境裡面 都需要這個編號 ,下面就是介紹通過 exec 命令檢視容器tomcat裡面的專案

docker exec -it 容器編號 /bin/bash

  1. 對於靜態檔案的部署 最好使用 掛載的方式(-v 掛載宿主機配置檔案)(docker容器處理專案檔案路徑的一種方式),因為容器裡面修改檔案都是暫時的,還有就是容器停止後或者重啟後 所有的專案都丟失了,具體看看docker的官方建議

docker run -d -v /data/temp:/usr/local/tomcat/webapps/ROOT -p 8081:8080 tomcat:latest

建議測試環境都用這種方式

在Tomcat中部署web專案

  1. 在tomcat 中如果存放靜態頁面 預設的路徑 應該是在 tomcat/webapps下
  2. 利用掛在的方式將外部檔案放到容器tomcat中

docker run -d -v /data/demo.war:/usr/local/tomcat/webapps/demo.war -p 8081:8080 tomcat:latest

這裡面的 data/demo.war ,data是自己在前面建立的目錄;

在生產環境中部署專案

官網的建議是建立一個DockerFIle去替換,這應該是最好的方式,但是卻不在今天的文章中(具體的可以參考其他人的部落格或者看官網的資料),改天再研究哈;

收工!