前言
在本地编写好了Spring项目,为了实现能够随时地访问,所以需要将项目部署到服务器。为了简便,就选择使用Docker。将编译并重命名为ROOT.war的压缩包上传到指定路径中,用访问ip+端口号即可。

安装JDK8环境
已经安装
一般来说服务器是应该有JDK环境的,直接在命令行中输入关键字java,如果出现提示,就只需要记录下来java的路径即可跳过该步骤。
没有安装
其实更建议直接去JDK官网下载,当然,在我的微信公众号**君匡**(因为域名和服务器都会频繁改动,关注后取关也无妨的,/腼腆笑)也是有提供jdk-8u221-linux-x64.tar.gz安装包的。
将下载好的安装包上传到服务器,解压并移动到某个指定位置。
#scp 上传文件
scp /Users/keen/Downloads/jdk-8u221-linux-x64.tar.gz root@39.96.12.167:/home/keen/jdk-8u221-linux-x64.tar.gz
# 解压文件
tar -xzvf jdk-8u221-linux-x64.tar.gz
# 生成目录
mkdir /home/keen/jdk/
# 解压的文件移动过去
mv jdk1.8.0_221/ /home/keen/jdk/
记住此时的JDK的路径为/home/keen/jdk/,后面会用到。
安装Tomcat
拉取镜像
如果想要搜寻指定版本再拉取,建议移步本系列的前几篇文章。
#拉取镜像版本为9.0.33,要求使用JDK8作为环境
docker pull tomcat:9.0.33-jdk8-openjdk

创建外部挂载目录
在我的个人文件夹内,生成指定名称为tomcat的文件夹,保存容器内的文件。
# 文件夹名为tomcat
export Tomcat=tomcat
# 生成外部挂载目录
mkdir /home/keen/docker/$Tomcat
创建临时容器
创建临时容器,目的是为了复制出来一些默认的配置文件。
docker run \
-p 8080:8080 \
--name temp \
-d \
tomcat:9.0.33-jdk8-openjdk
将临时容器内的文件复制到挂载路径中:
docker cp temp:/usr/local/tomcat/conf/ /home/keen/docker/$Tomcat/conf/
docker cp temp:/usr/local/tomcat/bin/ /home/keen/docker/$Tomcat/bin/
docker cp temp:/usr/local/tomcat/logs/ /home/keen/docker/$Tomcat/logs/
docker cp temp:/usr/local/tomcat/webapps/ /home/keen/docker/$Tomcat/webapps/
销毁并删除临时容器
docker stop temp && docker rm temp
创建并运行容器
最后运行想要的容器:
docker run \
--name $Tomcat \
-p 9000:8080 \
--restart=always \
--log-opt max-size=20m \
-v /home/keen/docker/$Tomcat/conf/:/usr/local/tomcat/conf/ \
-v /home/keen/docker/$Tomcat/bin/:/usr/local/tomcat/bin/ \
-v /home/keen/docker/$Tomcat/logs/:/usr/local/tomcat/logs/ \
-v /home/keen/docker/$Tomcat/webapps/:/usr/local/tomcat/webapps/ \
-v ~/jdk/:/usr/local/openjdk-8/ \
-v /etc/localtime:/etc/localtime \
-d \
tomcat:9.0.33-jdk8-openjdk
--name:启动容器设置容器名称为变量Tomcat,我在上文有赋值为tomcat-p: 设置容器的8080端口映射到主机9000端口--restart=always:设置开机自启--log-opt: 配置日志记录大小-v:地址映射。-d:后台运行
在项目中编译打包为WAR类型,将编译并重命名为ROOT.war的压缩包上传到/home/keen/docker/$Tomcat/webapps/路径中,用访问ip+端口号即可。
部署毕设项目
我要用这种方式部署我的毕设项目,幸好我有准备!
# 指定名称
export Tomcat=tomcat-garbageclassfication
cd /home/keen/docker && mkdir $Tomcat
docker run -p 8080:8080 --name temp -d tomcat:9.0.33-jdk8-openjdk
docker cp temp:/usr/local/tomcat/conf/ /home/keen/docker/$Tomcat/conf/
docker cp temp:/usr/local/tomcat/bin/ /home/keen/docker/$Tomcat/bin/
docker cp temp:/usr/local/tomcat/logs/ /home/keen/docker/$Tomcat/logs/
docker cp temp:/usr/local/tomcat/webapps/ /home/keen/docker/$Tomcat/webapps/
docker stop temp && docker rm temp
docker run -p 9292:8080 \
--restart=always \
--log-opt max-size=20m \
-v /home/keen/docker/$Tomcat/conf/:/usr/local/tomcat/conf/ \
-v /home/keen/docker/$Tomcat/bin/:/usr/local/tomcat/bin/ \
-v /home/keen/docker/$Tomcat/logs/:/usr/local/tomcat/logs/ \
-v /home/keen/docker/$Tomcat/webapps/:/usr/local/tomcat/webapps/ \
-v ~/jdk/:/usr/local/openjdk-8/ \
-v /etc/localtime:/etc/localtime \
--name $Tomcat \
-d \
tomcat:9.0.33-jdk8-openjdk
上传ROOT.war即可。
感谢
感谢现在的好奇,为了能成为更好的自己。
感谢王谚老师的指导。