前言
在本地编写好了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
即可。
感谢
感谢现在的好奇,为了能成为更好的自己。
感谢王谚老师的指导。