使用阿里云轻量服务器 + Docker 部署 Spring Boot 项目实战指南

🎯 目标:使用阿里云轻量服务器部署一个完整的 Spring Boot 全栈项目(如 hmdp),包括 MySQL、Redis、Nginx 和 Spring Boot 应用。

💡 适合人群:有基础 Linux 操作能力、了解 Docker 的开发者,适用于课程设计、毕业设计或个人项目上线。

一、前置准备

1. 准备一台 Ubuntu 系统服务器

推荐使用 阿里云轻量应用服务器,大学生可以免费申请使用,配置为 2核1G,完全满足学习和小项目部署需求。

  • 登录方式:使用 SSH 工具(如 XShell 或 Terminal)连接服务器
  • 推荐使用 root 用户操作,或者在命令前加 sudo

2. 安装 Docker

# 更新系统软件包索引
apt update && apt upgrade -y

# 安装依赖包
apt install -y apt-transport-https ca-certificates curl software-properties-common

# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置稳定仓库源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

# 再次更新并安装 Docker CE
apt update
apt install -y docker-ce

# 启动 Docker 并设置开机自启
systemctl enable docker && systemctl start docker

# 验证安装
docker --version

二、部署mysql

# 1.创建本地数据存储目录
mkdir -p ~/mysql/data ~/mysql/logs

# 2.拉取镜像(建议使用长期支持版本)
docker pull mysql:5.6

# 3.启动容器
docker run -d \
  --name mysql_1 \
  -p 3306:3306 \
  -v ~/mysql/data:/var/lib/mysql \
  -v ~/mysql/logs:/logs \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql:5.6

✅ 可选操作:

  • 使用客户端工具远程连接测试(如 Navicat、DBeaver)

  • 修改密码、创建数据库等可通过 docker exec 进入容器操作

启动好可以用本地连接测试一下

三、部署redis

# 1.创建 Redis 数据与配置目录
mkdir -p ~/redis/data ~/redis/conf

# 2.下载官方配置文件并设置密码
cd ~/redis/conf
curl -O https://raw.githubusercontent.com/redis/redis/unstable/redis.conf

# 3.编辑配置文件,添加密码认证
vim redis.conf
# 找到 requirepass 行,取消注释并设置密码,例如:
# requirepass your_password_here

# 4.拉取镜像
docker pull redis:latest

# 5.启动容器
docker run -d \
  --name redis_custom \
  --restart always \
  -p 6379:6379 \
  -v ~/redis/data:/data \
  -v ~/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  redis:latest redis-server /usr/local/etc/redis/redis.conf

✅ 可选操作:

  • 使用 redis-cli 测试连接和认证
  • 设置持久化策略、限制最大内存等可在 redis.conf 中调整

启动好可以用本地连接测试一下

四、部署nginx

这个稍微麻烦一点,也就是多了一步上传压缩包到云端,解压这一步,因为你要挂自己的html和conf。

1.上传并解压 Nginx 资源包

将本地打包好的前端资源(含 HTML、CSS、JS、配置文件等)上传至服务器,例如 /root/dockerFiles/nginx-1.18.0_hmdp2.zip

假设你已经有了 nginx-1.18.0_hmdp2.zip 并且位于 /root/dockerFiles/ 目录下: 

unzip nginx-1.18.0_hmdp2.zip -d nginx_hmdp

2.准备宿主机目录并复制文件

mkdir -p ~/nginx_conf
mkdir -p ~/nginx_html

 把自己项目的conf和html复制到容器准备挂载的目录(我这里的root下面两个文件夹了,你可以放在一个里面例如:nginx/nginx_conf、nginx/nginx_html)

cp ~/dockerFiles/nginx_hmdp/nginx-1.18.0_hmdp2/conf/nginx.conf ~/nginx_conf/nginx.conf
cp -r ~/dockerFiles/nginx_hmdp/nginx-1.18.0_hmdp2/html/* ~/nginx_html/

3. 拉取镜像并启动容器

docker pull nginx:alpine
docker run -d \
  --name nginx_hmdp1 \
  -p 80:80 \
  -v ~/nginx_html:/usr/share/nginx/html \
  -v ~/nginx_conf/nginx.conf:/etc/nginx/nginx.conf
  nginx:alpine

4. 常见问题排查

如果遇到问题,请按照以下步骤进行排查:

(1) 检查挂载是否正确

确认挂载的路径是否正确,并且宿主机上的文件确实存在于指定路径:

ls -l ~/nginx_conf/nginx.conf
ls -l ~/nginx_html/

(2) 检查 Nginx 日志

进入容器查看 Nginx 错误日志:

docker exec -it nginx_hmdp1 /bin/sh
cat /var/log/nginx/error.log

(3) 检查 Nginx 配置语法

在容器内测试 Nginx 配置文件语法:

docker exec -it nginx_hmdp1 /bin/sh
nginx -t
docker run --rm -it \
  -v ~/nginx_conf/nginx.conf:/etc/nginx/conf.d/nginx.conf \
  nginx:alpine nginx -t

如果配置文件有错误,Nginx 会提示具体的错误信息。

五、部署 Spring Boot 项目(以 hmdp 为例)

实际开发中,我们常常需要将 Spring Boot 应用打包并部署到生产环境中。使用 Docker 可以实现应用的快速构建、分发与部署。本文将以名为 hmdp 的 Spring Boot 项目为例,介绍如何通过 Dockerfile 构建镜像,并运行容器化服务。

1.准备阶段:上传 JAR 包

在项目目录下创建一个 dockerfile,用于定义镜像的构建过程。这里我们选择基于 openjdk:8-jdk-alpine 镜像,它是一个轻量级的 JDK 环境

(1)打包 Spring Boot 应用

在本地开发环境中,使用 IntelliJ IDEA 或 Maven 命令对项目进行清理和打包:

用idea的maven先clean一下再package一下。

(2)上传 JAR 到服务器

使用工具如 XFTP 或 SCP 将生成的 JAR 包上传至服务器的目标目录,例如 /root/dockerFiles/

确保 Dockerfile 和 JAR 包处于同一目录下,便于后续构建。

2.编写 Dockerfile 并构建镜像

(1)创建 Dockerfile 文件

在项目目录下创建一个 Dockerfile,用于定义镜像的构建过程。这里我们选择基于 openjdk:8-jdk-alpine 镜像,它是一个轻量级的 JDK 环境。

vim /root/dockerFiles/springboot_dockerfile
# 使用 openjdk:8-jdk-alpine 镜像(轻量化版本)
FROM openjdk:8-jdk-alpine

# 维护者信息(建议改用 LABEL 指令)
LABEL maintainer="lfq <lfq@lfq.cn>"
# 添加 Spring Boot 应用的 JAR 文件
ADD hm-dianping-0.0.1-SNAPSHOT.jar app.jar
# 启动命令
ENTRYPOINT ["java", "-jar", "/app.jar"]
(2)构建 Docker 镜像

执行如下命令构建镜像:

docker build -f ./springboot_dockerfile -t hmdp .

3.运行容器并挂载配置文件

为了便于维护和更新配置,推荐将 Spring Boot 应用的配置文件(如 application.yaml)从容器外部挂载进去。

(1)准备宿主机配置文件

在服务器上创建配置文件目录并放置你的 application.yaml,你可以自己写也可以上传都行。

mkdir -p /root/myapp/config
cp application.yaml /root/myapp/config/
(2)运行容器并挂载配置

执行以下命令启动容器:

docker run -d \
    --name hmdp_new \
    -v /root/myapp/config/application.yaml:/app/config/application.yaml \
    -p 8088:8088 \
    hmdp

参数说明:

  • -d:后台运行容器

  • --name:指定容器名称

  • -v:将宿主机的配置文件挂载到容器内部路径

  • -p:映射容器端口到宿主机(本例为 8088)

六、总结

本文详细讲解了如何在阿里云轻量服务器上使用 Docker 部署一个完整的 Spring Boot 项目(hmdp),包括:

  • Docker 安装配置
  • MySQL、Redis、Nginx、Spring Boot 应用的部署
  • 常用参数说明与问题排查技巧
  • 安全性与灵活性优化建议

📌 扩展阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值