前言
本文記錄一下我作為一個小白如何通過docker手動將java springboot項目部署到云服務器上(以騰訊云的輕量應用服務器為例)。但是我個人還是推薦安裝一個寶塔面板部署,真的全程自動化,非常方便,網上有很多相關的教程可以搜搜看。所以我寫這個教程其實只想記錄一下我第一次部署云服務器的過程,并不是最好的部署方案,主要目的還是為了完成某個課程設計的部署任務,不能保證安全性!(因為我第一次部署后就因為密碼太簡單導致數(shù)據(jù)庫被攻擊了。。。)所以對于大型項目可能不太適合。
由于我對運維方面也不是特別了解,如有錯誤歡迎指出!
1.云服務器
可以到阿里云/騰訊云等服務商的官網購買云服務器,新注冊的用戶可以找到免費試用,一般都有幾個月的免費試用期。
我這里選擇了騰訊云的輕量應用服務器,具體配置視情況而定。
創(chuàng)建實例,操作系統(tǒng)為?CentOS 7.9 64bit
然后到控制臺界面進入實例,登錄
第一次登錄貌似是沒有自己設置的密碼的,所以登錄前需要重置密碼(在上面那個登錄鍵的旁邊)
那么初始密碼是什么?找到最上面一欄的小信封,有一個提示服務器創(chuàng)建成功的信息,點開里面就可以看到初始密碼了
重置密碼后,點擊登錄,進入遠程登錄的控制臺面板,之后docker部署什么的都在這里完成
2.安裝docker
云服務器 搭建 Docker-最佳實踐-文檔中心-騰訊云 (tencent.com)這個鏈接里有詳細的教程,按照里面的命令復制粘貼就可以了。這里有一個小小的坑,要注意操作系統(tǒng)CentOS的版本,如果是7.X的要切換一下,8.X的命令是行不通的!
安裝好了就會得到鏡像名(一串字符)
3.部署項目
接下來就可以進入到項目的部署了。部署之前要搞清楚一件事,就是想要部署的Java項目配置了哪些工具(?或者是說中間件,可以在項目的配置文件里查看),那么就在docker上部署相應的工具。比如我要部署的這個項目使用到了MySQL、Redis,那么我在docker上部署這兩個就可以了。
3.1安裝jdk
既然要在云服務上運行Java項目,那么jdk肯定是少不了的。需要在本地下載好Linux的系統(tǒng)的jdk,jdk版本最好選擇和本地電腦上版本一致的,我用的是jdk16.0.2
Oracle官網:Oracle | Cloud Applications and Cloud Platform
linux jdk16下載地址:Java Archive Downloads - Java SE 16 (oracle.com)
?
下載后需要把本地的jdk壓縮包傳輸?shù)皆品掌魃?,所以需要下載文件傳輸?shù)墓ぞ?,例如FileZilla(也可以用XShell6與XFtp6什么的,反正能遠程傳文件就行了)
文件->站點管理器->新站點
?
填寫主機ip,協(xié)議選擇SFTP,用戶密碼寫之前自己設置的,點擊連接顯示連接成功就可以傳文件了(超時的話可以檢查有沒有寫錯或者電腦換一個網絡)
?
為了使服務器上的文件有條理,先在命令行里新建文件夾用來放置jdk相關的文件
mkdir java
cd java
mkdir jdk
cd jdk
filezilla遠程站點進入到該路徑下,左邊本地站點找到剛才下載的jdk壓縮包右鍵上傳
?
回到命令行l(wèi)s查看就可以看到里面有一個壓縮包了,解壓壓縮包
tar -zxvf 壓縮包名字.tar.gz
解壓后
?
配置Java環(huán)境
vim /etc/bashrc
在文件的前面添加,注意jdk版本
export JAVA_HOME=/root/java/jdk/jdk-16.0.2(jdk版本)
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存文件退出,執(zhí)行以下命令刷新配置
source /etc/bashrc
查看java版本,成功輸出版本內容就說明jdk配置成功了(失敗的話檢查是不是環(huán)境變量配置有誤)
?
3.2安裝mysql并加載數(shù)據(jù)
事先要將本地數(shù)據(jù)庫的數(shù)據(jù)導出為.sql文件,然后將文件傳輸?shù)皆品掌魃?/p>
如果使用的是mysql workbench可以看這個文章教怎么導出.sql文件:
如何使用Mysql Workbench導出一整個sql文件,sql包? - 星朝 - 博客園 (cnblogs.com)
然后使用和剛才傳jdk壓縮包一樣的方法,傳.sql文件(我放在了/java/dumps/文件夾下)
啟動docker,拉取MySQL8.0鏡像
systemctl start docker
docker pull mysql:8.0
上面那條下不了可以用這個國內的鏡像網站:
docker pull daocloud.io/library/mysql:8.0
創(chuàng)建容器(我設置的密碼是root,一定要把密碼設置得復雜一些!)
docker run \
--name mysql \
-p 3306:3306 \
--restart=always \
-e MYSQL_ROOT_PASSWORD=root \
-v /var/lib/mysql/:/var/lib/mysql/ \
-d mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
進入mysql容器,登錄數(shù)據(jù)庫
docker exec -it mysql /bin/bash
mysql -uroot -proot
顯示這樣的就是成功了
quit命令退出來,復制.sql文件到容器內(注意這里文件名)
docker cp *.sql mysql:/home
再次進入容器,進入剛才復制的路徑/home,進入數(shù)據(jù)庫
docker exec -it mysql /bin/bash 進入容器
cd home 進入復制的路徑
mysql -uroot -proot 進入數(shù)據(jù)庫
創(chuàng)建一個新的數(shù)據(jù)庫,將sql文件導入
create database 數(shù)據(jù)庫名
use 數(shù)據(jù)庫名
source sql文件名.sql 導入sql文件
4.安裝Redis
創(chuàng)建redis容器
docker pull redis
docker run -d --name redis --restart=always -p 6379:6379 redis --requirepass "yourpassword"
如果pull的時候出現(xiàn)Timeout錯誤,可以看看我寫的另一篇文章:docker pull redis出現(xiàn)錯誤Timeout exceeded while awaiting headers解決-CSDN博客
docker ps可以看到redis就說明創(chuàng)建成功了
5.打包Jar包
修改配置文件中的IP地址以及各種密碼,在IDEA的右側欄點開Maven項
劃掉test,然后先clean,后package
這樣就是打包好了
在文件夾中找到jar包,使用相同的方法傳jar包到服務器上
服務器上,進入到jar所在的目錄下,輸入命令
java -jar 你的jar包名.jar
啟動成功
別忘了防火墻添加端口(這里還有添加項目的端口,我沒有截到)
然后就可以通過服務器IP+端口訪問了!
但是這樣的話如果這個進程關閉就訪問不了,所以需要使項目永久運行:文章來源:http://www.zghlxwxcb.cn/news/detail-857033.html
nohup java -jar 你的jar包名.jar > system.log 2>&1 &
這樣就完成部署了,感謝觀看!文章來源地址http://www.zghlxwxcb.cn/news/detail-857033.html
到了這里,關于手動將Java SpringBoot項目部署到云服務器上(使用docker)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!