一、前言
在腾讯云新买的洁白如新的云服务器,想要使用docker去部署springboot项目,特此记录!
二、安装jdk
参考博客:https://blog.csdn.net/weixin_45853881/article/details/123402891
2.1 检查jdk
直接在腾讯云平台登陆云服务器之后,执行下面的命令:
java -version
2.2 检查jdk自带的安装包
rpm -qa | grep java
由于是刚买的腾讯云服务器,所以里面是空的,也就不存在卸载jdk一说了,下面就直接开始安装了。
2.3 安装jdk
安装需要确保有良好的网络环境就可以。
2.3.1 查看云端目前支持安装的jdk版本:
yum search java|grep jdk
2.3.2 安装jdk11
sudo yum install -y java-11-openjdk
这里需要加一下sudo,安装需要root权限
看到最后有一个complete!就算安装完成了,我们再检查一下版本!
这样就安装完成了!
三、springboot项目打包
在IDE中,直接右键双击package就可以看到打包的结果了
打好的包
验证一下打的包是否能正常启动:进入打好的包的路径下,执行:
java -jar access-control-0.0.1-SNAPSHOT.jar
项目可以正常启动,再看下Apifox上能不能正常访问:
这样说明程序可以正常运行,接着就把包挪到服务器上。
四、上传jar包和编写Dockerfile
Dockerfile文件内容:
# 设置JAVA版本
FROM openjdk:11
WORKDIR /home/xxxx/project/access_control
VOLUME /tmp
COPY *.jar access.jar
ENV JAVA_OPTS="\
-server \
-Xms256m \
-Xmx512m \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=512m"
EXPOSE 8081
ENTRYPOINT [ "sh", "-c", "java -jar $JAVA_OPTS /home/xxxx/project/access_control/access.jar"]
这个文件中的工作目录WORKDIR: /home/xxxx/project/access_control就是我自己建的目录,可以根据自己的需要创建jar所在的目录。
把本地的jar上传的话,可以直接使用腾讯云中的rz
命令就可以了,会弹出来本地的文件夹,就可以把本地的jar传到服务器上了。
这里要注意,Dockerfile没有文件后缀:
五、安装docker和构建项目
毫无疑问,我还没有装过docker,不信可以先执行docker命令试试:
5.1 设置docker镜像源
下面的命令全部复制后,一起执行
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache --timer
5.2 安装docker
sudo yum install -y docker-ce
5.3查看docker版本
docker -v
这样就安装完成了。
5.4查看防火墙状态
systemctl status firewalld
我们的这个防火墙是未激活状态,所以不用关闭了,如果是active状态,就需要关闭防火墙了:
systemctl stop firewalld
5.5 启动docker
systemctl start docker
查看docker的进程
ps -ef|grep docker
5.6 构建镜像:
docker build -f ./Dockerfile -t access .
查看当前镜像
5.7 启动容器后处理服务器的端口开放问题
sudo docker run -d --name=access -p 8081:8081 access
5.8 查看容器列表
这里说明一下端口的问题:第一个8081是对外访问的端口,第二个8081是服务中的application.properties中配置的8081端口。
5.9 查看启动日志并访问
sudo docker logs 容器id
看下能否正常访问:
curl --location --request POST 'http://localhost:8081/access/dept/getTree'
和本地的访问结果是一样的,说明部署的没有问题。
接着我们再使用Apifox进行访问看看:
访问超时了,这是由于腾讯云上没有开通端口权限。
5.10 开通端口权限
在腾讯云服务器-服务器-防火墙-添加规则后,应用类型选择【全部TCP】后点击【确定】
再次访问:
至此,在linux上使用docker从0部署springboot项目就算大功告成了。
---------你知道的越多,不知道的越多------------