docker部署專案

2022-12-07 21:01:02

@


前言

為了提高伺服器的利用率,且便於專案部署及釋出,伺服器採用docker部署多個專案jar包。該專案採用ssm+shiro+mysql+redis+mongdb等。

備註:本文以CentOs 7為例。

一、下載安裝docker:

1.前提工作

1.1 檢視linux版本

Docker 要求 CentOS 系統的核心版本不低於 3.10

 uname -r 

我的版本是:3.10.0-1160.53.1.el7.x86_64

1.2 yum包更新到最新

yum -y update

1.3 安裝工具包

sudo yum install ‐y yum‐utils device‐mapper‐persistent‐data lvm2

1.4 設定yum源並更新yum包索引

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast

2.安裝docker

2.1 安裝docker-ce

yum -y install docker-ce

2.2 啟動docker

systemctl start docker

2.3 檢視已安裝docker版本

docker -v

2.4 設定docker開機自啟動

systemctl enable docker

2.5 設定映象加速

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF

systemctl daemon-reload

systemctl restart docker

3.docker常用命令

// 若有舊版本docker解除安裝
yum remove docker docker-common docker-selinux docker-engine

// 刪除映象
docker rmi 容器名字
或者
docker rm-f 容器id

// 構建映象 
docker build

//停止docker服務:
systemctl stop docker

//重新載入docker組態檔
systemctl daemon-reload

// 檢視執行映象
docker ps 

// 檢視所有映象
docker  ps -a

// 檢視主目錄空間使用情況
df -h /home

// 檢視空間
df -h       

// 檢視狀態
docker stats

// 取消自啟動
docker update --restart=no 容器ID

// 根據容器id檢視程序
docker top 容器id

// 檢視執行緒
docker top -p 程序id

// 檢視整個docker啟動紀錄檔
docker logs -f docker容器id

二、部署專案:

備註
本文主要是本地單機用docker部署多個專案,所以只要用docker拉取tomcat及jdk,直連雲伺服器中redis、mysql、mongodb等服務即可。
前提在本地宿主機中先建立統一目錄並設定好tomcat、專案設定及專案jar包,建立容器同時複製tomcat、專案設定及專案jar包。
之後更新多個專案的tomcat、專案設定及專案jar包時,只要更新宿主伺服器的統一目錄中的tomcat、專案設定、及專案jar包即可。

1.設定tomcat、專案設定及專案jar包。

備註:當前tomcat、專案設定及專案jar包都放在該宿主機根目錄/setfile/下,具體參照目錄結構如下:

1.1 建立根目錄下統一設定目錄

mkdir setfile

1.2 將tomcat、專案設定及專案jar包放入上面統一目錄中,以便後面參照

1.3 賦予統一目錄許可權

1.3.1 根目錄/setfile下所有檔案的讀寫許可權
chmod 775 /setfile/*
1.3.2 賦予tomcat的catalina可執行許可權
chmod +x /setfile/config/catalina.sh

2.部署並啟動專案

2.1 先拉tomcat映象及對應的jdk

docker pull tomcat:8.5.82-jdk8

2.2 再建立容器(以容器app-01為例,之後的換個名字即可)

備註:
前面的埠8180是該宿主機對應app-01的埠,如果是新的app-02則再開另外的埠如8280,
後面的8080埠是該容器的埠,同一臺宿主機可以都用這個埠,或者用其他埠。

docker run -p 8180:8080 --name app-01 \ 

2.3 將新建的docker容器的tomcat、專案設定及jar包參照該宿主已設定好統一的tomcat、專案設定及jar包。

// 該路徑為放置專案jar包路徑

-v /setfile/webapps/:/usr/local/tomcat/webapps/ \

// 該路徑為專案紀錄檔路徑

-v /setfile/logs/:/setfile/logs/ \

// 該路徑為專案統一時間設定

-v /etc/localtime:/etc/localtime \

// 該路徑為tomcat的server.xml設定路徑

-v /setfile/config/server.xml:/usr/local/tomcat/conf/server.xml \

// 該路徑為專案字型設定路徑

-v /setfile/config/STFANGSO.TTF:/usr/share/fonts/chinese/STFANGSO.TTF \

// 該路徑為專案證件設定路徑

-v /setfile/cert/:/cert/ \

// 該路徑為tomcat的catalina.sh路徑

-v /setfile/config/catalina.sh:/usr/local/tomcat/bin/catalina.sh \

2.4 啟動並設定啟動tomcat及jdk

--restart=always -d tomcat:8.5.82-jdk8

3.重啟專案等其他命令

3.1 啟動、停止、重啟專案

docker start app-01  	// 啟動
docker stop app-01  	// 停止
docker restart app-01 	// 重啟

3.2 容器加入自動重啟

docker update --restart=always app-01

隨心所往,看見未來。Follow your heart,see light!

歡迎點贊、關注、留言,收藏及轉發,一起學習、交流!