如何通过docker镜像部署springboot项目

如何通过docker镜像部署springboot项目

注意:以下操作是基于Centos7.x-8.x系统,其他系统不保证可行。

第一步:下载镜像

登录管理端,依次进入订单管理-订单列表-建站模板订单-详情,看到如下页面,点击下载

如何通过docker镜像部署springboot项目

第二步:下载源码

同第一步,在订单详情页面下载源码处,点击下载

如何通过docker镜像部署springboot项目

第三步:安装Docker

通过终端连接服务器,终端推荐使用FinalShell;

依次执行如下命令:

# 卸载旧版本 Docker(如果已经安装过)
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 24年7月以后centos7服务终止,需要替换下方地址,centos7以上的版本可以忽略这一步
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo
# 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加阿里云 Docker 软件源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装 Docker CE
sudo yum install docker-ce docker-ce-cli containerd.io

    注意,在这一步需要两次手动确认,直接输入「y」,然后enter就可以了,这里可能要等几分钟进行安装;

    如何通过docker镜像部署springboot项目

如何通过docker镜像部署springboot项目

# 启动 Docker 服务
sudo systemctl start docker
# 将 Docker 添加到开机启动项
sudo systemctl enable docker

如何通过docker镜像部署springboot项目最后通过docker --version确认是否已安装成功,如下表示已成功

如何通过docker镜像部署springboot项目


第四步:安装Docker-Compose

    以下根据实际情况,任选其一

# 下载 Docker Compose(版本新,50多M)
curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
# 下载 Docker Compose(老版本,12M)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

如何通过docker镜像部署springboot项目

# 授予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 设置 USTC Docker Compose 镜像源
echo 'export DOCKER_COMPOSE_MIRROR=https://mirrors.ustc.edu.cn/docker-compose' >> ~/.bashrc
source ~/.bashrc

安装完后,通过docker-compose --version检查是否安装成功

如何通过docker镜像部署springboot项目

第四步:上传项目以及镜像配置文件到服务器

  • 把第一步下载的docker-compose-image_202311.zip镜像文件以及source.zip源码文件解压缩

  • 把解压后得到的Dockerfile+docker-compose.yml以及源码(记得把源码的名称改为springboot.jar与Dockerfile文件中的名称对应)上传到服务器的home目录下,如果你使用的是FinalShell,可直接通过cd /home进入home目录,拖拽或者如下方式把上面的3个文件上传至home目录。注:请务必修改docker-compose.yml文件中的MYSQL_ROOT_PASSWORD(数据库密码)以及command: redis-server --requirepass tzw739879508 --bind 0.0.0.0 --port 6111中的requirepass后面的密码(Redis密码)

  • 在home目录中添加文件夹init-scripts,并将源码文件中的business_source.sql数据结构及数据)放入init-scripts文件夹下

  • 在home目录中添加文件夹nginx,进入nginx目录并在此目录下新建config文件夹,最后将源码文件中的nginx_http.conf文件放入config文件夹下,并且修改文件名为nginx.conf(如果已经有域名并且已经进行了DNS解析,这一步可直接修改ngnix.conf内容,全局替换test.com为你自己的域名)

如何通过docker镜像部署springboot项目

第五步:构建镜像

执行如下命令即可执行docker镜像的构建与启动,其中-d是后台运行,如果想看日志可通过 docker-compose logs 命令查看日志

docker-compose up --build -d

如何通过docker镜像部署springboot项目

第六步:查看结果

执行完后,通过如下命令列出所有活动中的镜像

docker-compose ps

如何通过docker镜像部署springboot项目

此时,你的服务器中已经拥有了:Redis3.2.12、Mysql 5.7.28、Nginx1.18.01服务以及jdk1.8的java环境,到这里说明项目已经部署成功了,可以直接通过服务器公网ip:8088/index/login访问你的网站。

到目前为止,全世界的网民都可以在浏览器中通过公网ip直接访问你的网站了,如果希望能够通过域名访问网站,那只差最后一步了。只需要在域名服务商网站中进行DNS域名解析即可,将域名添加A记录并指向当前服务器公网IP即可。阿里云的解析教程在这里:如何添加域名解析记录,其他平台的也类似。

配置完后修改/home/nginx/config目录下的ngnix.conf文件,将里面的test.com全局替换为你的域名,然后在home目录下执行下面语句就全部ok了。

# 重新加载ngnix配置文件
docker exec -it nginx nginx -s reload

其实也可以把ngnix.conf配置域名的操作提前到「第四步」

第七步:版本更新

可以持续关注:SpringBoot实现的博客系统与企业站通用源码,有新版本发布后可免费下载更新,步骤也很简单,只需要将下载后文件中的springboot.jar放入服务器的/home目录中替换原有文件,然后在home目录下执行下方两行命令。

# 停服务
docker-compose stop app
# 启动服务
docker-compose up --build -d app

执行完以后即可完成版本升级!

总结: 

    乍一看步骤挺多,其实超简单。我是为了让新手更容易理解才把步骤细化的。你按照上面提供的命令一条一条傻瓜式的执行就完事了。其实熟悉后总结起来就两步,一、安装docker环境,二、上传并运行镜像及源码。完事!

    后期如果如果想对Redis或者Nginx配置文件进行更新,直接在/home目录下找到对应的文件修改就可以了

完整视频介绍: