🎯 目标:使用阿里云轻量服务器部署一个完整的 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 应用的部署
- 常用参数说明与问题排查技巧
- 安全性与灵活性优化建议
📌 扩展阅读:
- Docker 官方文档
- Spring Boot with Docker
- Docker Compose 实战教程
评论前必须登录!
注册