1. 程式人生 > >初次部署springboot、docker、redis、mysql、nginx

初次部署springboot、docker、redis、mysql、nginx

本文章適合所有初學者閱讀、我會從剛買來的一臺伺服器開始從零到部署專案   當然怎麼購買我就不多說了

使用到的技術有springboot、docker、redis、mysql、nginx

操作環境MAC電腦

首先通過終端連線伺服器   ssh [email protected]  

這是一臺全新的伺服器   廢話不多說 直接開始操作步驟了

安裝docker

1、yum -y install docker 

2、輸入docker -v  檢視是否安裝成功

接著將docker 後臺啟動

3、systemctl docker start

通過 ps -ef | grep docker 我們可以看到docker已經啟動了

4、映象加速

鑑於國內網路問題,後續拉取 Docker 映象十分緩慢,我們可以需要配置加速器來解決,我使用的阿里的映象

沒什麼好說的  阿里都已經告訴你怎麼使用了  貼上進去就好了  然後重啟

5、安裝jdk、mysql、redis、nginx  直接pull即可   但是我們需要載入自己的配置所以我們先建立docker-config目錄我存放的目錄是

6、目錄新建好了後,我們先把映象pull下來  我們先通過docker images  檢視當前映象  現在是一個都還沒有都

7、我這裡使用的是jdk8、mysql:5.6.35。不是所有東西都是最新的才是最好的  所以我這裡選擇了版本 其他最新的沒啥影響

docker pull java:8

docker pull mysql:5.6.35

docker pull redis

docker pull nginx

我們再輸入docker images   就可以看到pull下來的映象了

8、我們通過docker ps -a 檢視當前執行的映象   現在是一個都還沒有  我們先把他們都run起來

docker run -d -p 80:80 --name nginx

docker run -d -p 6379:6379 --name redis redis

docker run -d -p 3306:3306 --name mysql mysql:5.6.35

9、我們將容器裡的配置檔案都copy到伺服器裡面  下面是程式碼  ID是你的容器ID

docker cp ID:/etc/nginx/nginx.conf /app/soft/docker-config/nginx/conf/

docker cp ID:/etc/mysql/my.cnf /app/soft/docker-config/mysql/conf/

redis 預設是沒有配置的,需要我們手動新增  我們先進入redis/conf目錄新增redis.conf  具體配置如下具體欄位都有說明

mysql可以不用改動redis和nginx根據自己需要更改配置
Redis配置
# Redis預設不是以守護程序的方式執行,可以通過該配置項修改,使用yes啟用守護程序
# 啟用守護程序後,Redis會把pid寫到一個pidfile中,在/var/run/redis.pid
daemonize no
#設定程序鎖檔案
pidfile /var/run/redis.pid
#埠
port 6379
#密碼
requirepass 

# 當客戶端閒置多長時間後關閉連線,如果指定為0,表示關閉該功能
timeout 300
# 指定日誌記錄級別,Redis總共支援四個級別:debug、verbose、notice、warning,預設為verbose
# debug (很多資訊, 對開發/測試比較有用)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel debug

# 日誌記錄方式,預設為標準輸出,如果配置為redis為守護程序方式執行,而這裡又配置為標準輸出,則日誌將會發送給/dev/null
logfile logs
# 設定資料庫的數量,預設資料庫為0,可以使用select <dbid>命令在連線上指定資料庫id
# dbid是從0到‘databases’-1的數目
databases 16
##指定在多長時間內,有多少次更新操作,就將資料同步到資料檔案,可以多個條件配合
#save <seconds> <changes>
#Redis預設配置檔案中提供了三個條件:
save 900 1
save 300 10
save 60 10000
#指定儲存至本地資料庫時是否壓縮資料,預設為yes,Redis採用LZF壓縮,如果為了節省CPU時間,
#可以關閉該#選項,但會導致資料庫檔案變的巨大
rdbcompression yes
#指定本地資料庫檔名
dbfilename dump.rdb
#指定本地資料庫路徑
dir ./
#指定是否在每次更新操作後進行日誌記錄,Redis在預設情況下是非同步的把資料寫入磁碟,如果不開啟,可能
#會在斷電時導致一段時間內的資料丟失。因為 redis本身同步資料檔案是按上面save條件來同步的,所以有
#的資料會在一段時間內只存在於記憶體中
appendonly no
#指定更新日誌條件,共有3個可選值:
#no:表示等作業系統進行資料快取同步到磁碟(快)
#always:表示每次更新操作後手動呼叫fsync()將資料寫到磁碟(慢,安全)
#everysec:表示每秒同步一次(折衷,預設值)
appendfsync everysec

然後我們stop執行的容器,然後把它們都刪除

10、我們自己的需要掛在的配置檔案都已經建立好了  那就根據我們的配置檔案啟動把  先進入docker-config目錄下

大部分命令請移步docker命令,我就不做命令的解釋了

啟動mysql、掛載conf和日誌目錄data目錄,並設定密碼

docker run -p 3306:3306 --name docker-mysql -v $PWD/mysql/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/mysql/logs:/logs -v $PWD/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.35

我們需要把阿里的防火牆開啟才能讓外部訪問

啟動redis

docker run --name docker-redis -p 6379:6379 -v $PWD/redis/conf/redis.conf:/etc/redis/redis.conf -v $PWD/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

啟動nginx   新增了/data2/vue/lfeel-admin的目錄

docker run -d -p 80:80 --name docker-nginx -v /data2/vue/lfeel-admin:/usr/share/nginx/lfeel-admin -v $PWD/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/nginx/logs:/var/log/nginx  -d nginx

11、通過docker搭建私人倉庫

進入docker檔案 然後在最地下增加一行

vi /etc/sysconfig/docker

DOCKER_OPTS='-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'

再修改 vi /usr/lib/systemd/system/docker.service

在ExecStart後面新增 $DOCKER_OPTS \

還是老樣子 重新整理重啟

systemctl daemon-reload

systemctl restart docker

記得把防火牆開啟

驗證是否成功 http://ip地址:2375/info

然後在自己的springboot專案裡面增加

使用maven  build一下就自動上傳了

docker的部署情況大概主要內容就這些了