使用Docker从0开始在Linuex部署springboot项目(图文并茂)

一、前言

在腾讯云新买的洁白如新的云服务器,想要使用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

使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第1张图片

2.3.2 安装jdk11

sudo yum install -y java-11-openjdk

这里需要加一下sudo,安装需要root权限
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第2张图片

使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第3张图片
看到最后有一个complete!就算安装完成了,我们再检查一下版本!
在这里插入图片描述
这样就安装完成了!

三、springboot项目打包

在IDE中,直接右键双击package就可以看到打包的结果了
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第4张图片
打好的包
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第5张图片
验证一下打的包是否能正常启动:进入打好的包的路径下,执行:

java -jar access-control-0.0.1-SNAPSHOT.jar

使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第6张图片
项目可以正常启动,再看下Apifox上能不能正常访问:
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第7张图片
这样说明程序可以正常运行,接着就把包挪到服务器上。

四、上传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"]

使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第8张图片

这个文件中的工作目录WORKDIR: /home/xxxx/project/access_control就是我自己建的目录,可以根据自己的需要创建jar所在的目录。

把本地的jar上传的话,可以直接使用腾讯云中的rz命令就可以了,会弹出来本地的文件夹,就可以把本地的jar传到服务器上了。

这里要注意,Dockerfile没有文件后缀:
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第9张图片

五、安装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

使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第10张图片
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第11张图片

5.3查看docker版本

docker -v

在这里插入图片描述
这样就安装完成了。

5.4查看防火墙状态

systemctl status firewalld

使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第12张图片
我们的这个防火墙是未激活状态,所以不用关闭了,如果是active状态,就需要关闭防火墙了:

systemctl stop firewalld

5.5 启动docker

 systemctl start docker

查看docker的进程

 ps -ef|grep docker

进程

5.6 构建镜像:

 docker build -f ./Dockerfile -t access .

使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第13张图片
查看当前镜像
在这里插入图片描述

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

使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第14张图片
看下能否正常访问:

curl --location --request POST 'http://localhost:8081/access/dept/getTree'

在这里插入图片描述
和本地的访问结果是一样的,说明部署的没有问题。

接着我们再使用Apifox进行访问看看:
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第15张图片
访问超时了,这是由于腾讯云上没有开通端口权限。

5.10 开通端口权限

在腾讯云服务器-服务器-防火墙-添加规则后,应用类型选择【全部TCP】后点击【确定】
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第16张图片
再次访问:
使用Docker从0开始在Linuex部署springboot项目(图文并茂)_第17张图片
至此,在linux上使用docker从0部署springboot项目就算大功告成了。

---------你知道的越多,不知道的越多------------

你可能感兴趣的:(docker,spring,boot,腾讯云)