在腾讯云轻量应用服务器(Lighthouse)上通过 Docker 部署 Spring Boot 应用,可以大大简化环境配置和版本管理。以下是完整的操作流程,涵盖从镜像构建到容器运行的关键步骤:
✅ 前提条件
- 已购买并登录腾讯云轻量应用服务器(CentOS 7/8、Ubuntu 20.04+ 等主流系统)
- 已安装 Docker(若未安装,见下文快速安装命令)
- 本地已构建好 Spring Boot 应用的
.jar包或可运行镜像
🚀 一、安装 Docker(如未安装)
Ubuntu / Debian
sudo apt-get update
sudo apt-get install docker.io -y
sudo systemctl enable --now docker
sudo usermod -aG docker $USER # 避免每次 sudo,需重新登录生效
CentOS 7/8
# CentOS 8
sudo dnf install -y docker
sudo systemctl enable --now docker
# CentOS 7(需先安装 yum-utils)
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
💡 验证安装:
docker --version docker run hello-world
📦 二、准备 Spring Boot 应用
方案 A:本地打包后上传(推荐新手)
-
在本地用 Maven 打包:
mvn clean package -DskipTests生成
target/your-app.jar -
上传到服务器(以
scp为例):scp target/your-app.jar root@<你的公网IP>:/opt/app/ -
登录服务器确认文件存在:
ls -l /opt/app/your-app.jar
方案 B:直接在服务器上构建镜像(适合 CI/CD 场景)
如需自定义 Dockerfile,可在服务器上创建 Dockerfile:
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY your-app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
然后构建镜像:
docker build -t my-spring-boot-app .
🐳 三、运行 Docker 容器
基础运行命令
docker run -d
--name spring-boot-app
-p 8080:8080
-v /opt/app/logs:/app/logs
my-spring-boot-app
参数说明:
-d:后台运行--name:容器名称-p 8080:8080:映射主机 8080 → 容器 8080(Spring Boot 默认端口)-v:挂载日志目录,便于查看和持久化my-spring-boot-app:镜像名(本地打包则用latest,自定义构建用你指定的 tag)
⚠️ 注意:轻量服务器防火墙需放行 8080 端口!
可通过控制台「安全组」添加规则:允许 TCP 8080 来自任意 IP(或仅你的 IP)。
🔍 四、验证与运维
查看容器状态
docker ps # 查看运行中容器
docker logs spring-boot-app # 实时日志
docker logs -f spring-boot-app --tail 100 # 最后 100 行
停止/重启/删除容器
docker stop spring-boot-app
docker start spring-boot-app
docker rm spring-boot-app
设置开机自启(重要!)
docker update --restart=always spring-boot-app
🌐 五、访问应用
浏览器打开:http://<你的轻量服务器公网IP>:8080
✅ 建议:后续可搭配 Nginx + 域名 + HTTPS 做反向X_X,提升安全性和体验。
🛠️ 进阶建议
| 需求 | 推荐方案 |
|---|---|
| 多实例部署 | 使用 docker-compose.yml 编排多个服务 |
| 环境变量配置 | 用 -e SPRING_PROFILES_ACTIVE=prod 指定 profile |
| 日志集中管理 | 挂载 /var/log/spring-boot 或使用 ELK |
| 自动更新 | 结合 GitHub Actions + docker pull && docker restart |
| 监控告警 | Prometheus + Grafana 容器化部署 |
示例 docker-compose.yml(可选):
version: '3'
services:
app:
image: my-spring-boot-app:latest
ports:
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=prod
volumes:
- ./logs:/app/logs
restart: always
启动:docker-compose up -d
需要我提供:
- 完整的
Dockerfile模板(含健康检查、JVM 参数优化)? - 配合 Nginx 反向X_X的配置示例?
- 自动化部署脚本(一键部署.sh)?
欢迎告诉我你的具体需求,我可以进一步定制方案 👇
CLOUD技术博