在腾讯云轻量应用服务器(Lighthouse)上通过 Docker 部署 Spring Boot 应用,是一个非常高效且标准化的流程。以下是详细的操作步骤,从环境准备到最终访问。
✅ 前置条件
- 已购买腾讯云轻量应用服务器(建议 CentOS 7/8、Ubuntu 20.04+ 或 Debian 系统)。
- 已开放端口:确保防火墙/安全组中放行了你应用的端口(如
8080)。 - 基础工具:SSH 登录服务器。
🚀 完整部署步骤
第一步:安装 Docker 和 Docker Compose
推荐使用官方脚本一键安装,简洁高效。
# 1. 卸载旧版本(如果有)
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
# 2. 安装依赖
sudo yum install -y yum-utils
# 3. 设置 Docker 镜像仓库(推荐阿里云镜像提速,提升下载速度)
sudo yum-config-manager
--add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4. 安装 Docker Engine, CLI, Containerd, Compose
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 5. 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 6. 验证安装
docker --version
docker compose version
💡 提示:如果是 Ubuntu 系统,请使用
apt命令安装,逻辑类似。
第二步:准备 Spring Boot 应用
方式一:使用已打包好的 JAR 文件(推荐新手)
假设你的 Spring Boot 项目已经打成 app.jar,上传到服务器某个目录,例如 /opt/app/。
mkdir -p /opt/app
cd /opt/app
# 通过 scp 或 FTP 将 app.jar 上传到这里
方式二:使用 Dockerfile 构建镜像(推荐生产环境)
在项目根目录创建 Dockerfile:
# 使用官方精简版 JDK 镜像
FROM openjdk:17-jdk-slim
# 设置工作目录
WORKDIR /app
# 复制 jar 包
COPY target/app.jar app.jar
# 暴露端口
EXPOSE 8080
# 启动命令
ENTRYPOINT ["java", "-jar", "app.jar"]
然后执行构建:
docker build -t my-spring-boot-app .
第三步:运行容器
方法 A:直接运行(简单场景)
docker run -d
--name spring-boot-app
-p 8080:8080
-v /opt/app/logs:/app/logs
my-spring-boot-app
-d:后台运行-p 8080:8080:映射主机端口 8080 到容器端口 8080-v:挂载日志目录(可选)
方法 B:使用 Docker Compose(推荐,便于管理)
在 /opt/app/ 目录下创建 docker-compose.yml:
version: '3.8'
services:
app:
image: my-spring-boot-app # 如果使用 Dokerfile 构建,此处填镜像名
# 或者直接用 build: . 来构建
# build: .
container_name: spring-boot-app
ports:
- "8080:8080"
volumes:
- ./logs:/app/logs # 挂载日志目录
environment:
- TZ=Asia/Shanghai # 设置时区
- SPRING_PROFILES_ACTIVE=prod # 激活生产配置
restart: always # 自动重启
networks:
- app-network
networks:
app-network:
driver: bridge
启动服务:
cd /opt/app
docker compose up -d
第四步:验证与调试
1. 查看容器状态
docker ps
docker compose ps
2. 查看日志
docker logs -f spring-boot-app
# 或
docker compose logs -f app
3. 测试访问
在浏览器中访问:
http://<你的服务器公网IP>:8080
如果返回 Spring Boot 默认页面或接口数据,说明部署成功!
🔧 常见问题排查
| 问题 | 解决方案 |
|---|---|
| 连接超时 | 检查腾讯云控制台 → 防火墙 → 是否放行 TCP 8080 端口 |
| 容器启动后立即退出 | 查看日志 docker logs <container_id>,通常是 Java 启动报错或配置文件错误 |
| 内存不足 | 轻量服务器内存较小,可在 docker-compose.yml 中添加资源限制:deploy.resources.limits.memory: 512M |
| 中文乱码 | 在 Dockerfile 中安装字体:RUN apt-get update && apt-get install -y fontconfig ttf-wqy-microhei |
| Docker Compose 命令无效 | 新版本的 Docker Compose 是插件形式,使用 docker compose(无连字符),而非 docker-compose |
🌟 进阶优化建议
-
使用 Nginx 反向X_X + HTTPS
不要直接暴露 8080 端口,而是通过 Nginx 转发 80/443 端口,支持 SSL 证书。 -
多阶段构建减小镜像体积
FROM maven:3.8-openjdk-17 AS builder WORKDIR /app COPY pom.xml . COPY src ./src RUN mvn clean package -DskipTests FROM openjdk:17-jdk-slim WORKDIR /app COPY --from=builder /app/target/*.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] -
监控与健康检查
在docker-compose.yml中添加 healthcheck:healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"] interval: 30s timeout: 10s retries: 3
✅ 完成以上步骤后,你的 Spring Boot 应用已在腾讯云轻量服务器上稳定运行!如需自动化部署,可结合 GitHub Actions 或 GitLab CI/CD 实现一键发布。
云服务器