在腾讯云上使用 Docker 部署 Java 项目是一个常见且高效的部署方式。下面是一个完整的步骤指南,帮助你在腾讯云服务器(CVM)上通过 Docker 部署 Java 项目。
✅ 一、准备工作
1. 购买并登录腾讯云 CVM
- 登录 腾讯云控制台
- 购买一台 云服务器 CVM(推荐 CentOS 7+/Ubuntu 20.04+)
- 获取公网 IP、用户名(如
root或ubuntu)、密码或密钥
使用 SSH 登录:
ssh root@你的公网IP
✅ 二、安装 Docker
1. 更新系统包
# Ubuntu/Debian
sudo apt update
# CentOS/RHEL
sudo yum update -y
2. 安装 Docker
Ubuntu 示例:
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker
CentOS 示例:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io -y
sudo systemctl enable docker
sudo systemctl start docker
3. 验证安装
docker --version
推荐将当前用户加入
docker组,避免每次使用sudo:sudo usermod -aG docker $USER # 退出重新登录
✅ 三、准备 Java 项目
1. 上传 JAR 包
假设你有一个 Spring Boot 项目打包成 app.jar。
方式一:本地上传(使用 scp)
scp app.jar root@你的IP:/root/
方式二:从 Git 仓库拉取源码并打包
git clone https://github.com/yourname/your-java-project.git
cd your-java-project
./mvnw clean package -DskipTests
# 得到 target/app.jar
✅ 四、编写 Dockerfile
在项目目录下创建 Dockerfile:
# 使用官方 OpenJDK 运行时作为基础镜像
FROM openjdk:17-jdk-slim
# 设置工作目录
WORKDIR /app
# 将本地的 JAR 文件复制到容器中
COPY app.jar app.jar
# 暴露应用端口(如 8080)
EXPOSE 8080
# 容器启动时运行 Java 应用
ENTRYPOINT ["java", "-jar", "app.jar"]
注意:JDK 版本要与你打包时一致(如 8、11、17)
✅ 五、构建并运行 Docker 镜像
# 构建镜像,命名为 my-java-app:latest
docker build -t my-java-app:latest .
# 运行容器,映射宿主机 8080 到容器 8080
docker run -d -p 8080:8080 --name my-app my-java-app:latest
-d表示后台运行,--name指定容器名称
✅ 六、开放防火墙和安全组
1. 腾讯云控制台设置安全组
- 进入 CVM 控制台
- 找到你的实例 → 点击关联的 安全组
- 添加规则:允许 TCP 8080 端口(或其他你使用的端口)的入站流量
- 协议类型:TCP
- 端口:8080
- 源 IP:0.0.0.0/0(或限制为你的 IP)
2. 服务器本地防火墙(如启用)
# Ubuntu(ufw)
sudo ufw allow 8080
# CentOS(firewalld)
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
✅ 七、访问应用
在浏览器访问:
http://你的公网IP:8080
你应该能看到你的 Java 应用(如 Spring Boot 的接口或页面)。
✅ 八、进阶建议
1. 使用 Docker Compose(多服务)
创建 docker-compose.yml:
version: '3'
services:
java-app:
build: .
ports:
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=prod
运行:
docker-compose up -d
2. 推送镜像到腾讯云镜像仓库(TCR)
- 创建 容器镜像服务 TCR 实例
- 创建命名空间和镜像仓库
- 登录并推送:
docker login ccr.ccs.tencentyun.com docker tag my-java-app:latest ccr.ccs.tencentyun.com/你的命名空间/my-java-app:latest docker push ccr.ccs.tencentyun.com/你的命名空间/my-java-app:latest
3. 使用云服务器弹性扩容 + 负载均衡
- 配合 弹性伸缩 和 CLB 负载均衡 实现高可用
✅ 常见问题排查
| 问题 | 解决方法 |
|---|---|
| 访问不了 8080 | 检查安全组、防火墙、应用是否监听 0.0.0.0 |
| 容器启动失败 | docker logs my-app 查看日志 |
| 端口被占用 | netstat -tulnp | grep 8080 |
| 构建失败 | 检查 JAR 包路径、Dockerfile 语法 |
✅ 总结
通过以上步骤,你已经成功在腾讯云上使用 Docker 部署了 Java 项目。这种方式具有:
- 环境一致性
- 快速部署
- 易于扩展和维护
后续可结合 Kubernetes(TKE) 实现更高级的容器编排。
如果你提供具体的项目类型(如 Spring Boot、普通 Java Web、是否使用数据库等),我可以给出更定制化的 Dockerfile 和部署建议。
云服务器