在腾讯云上使用 Docker 部署 Java 项目是一个非常常见且高效的部署方式。以下是详细的步骤指南,帮助你在腾讯云服务器(CVM)上通过 Docker 部署 Java 项目。
🛠️ 一、准备工作
-
购买并登录腾讯云 CVM 实例
- 选择操作系统(推荐 Ubuntu 20.04 / CentOS 7+)
- 开放安全组端口(如 80、443、8080 等)
-
安装 Docker 和 Docker Compose
# 更新系统 sudo apt update && sudo apt upgrade -y # 安装 Docker sudo apt install docker.io -y # 启动并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 安装 Docker Compose(可选) sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose -
(可选)配置国内镜像X_X器
编辑/etc/docker/daemon.json:{ "registry-mirrors": ["https://mirror.ccs.tencentyun.com"] }然后重启 Docker:
sudo systemctl daemon-reload sudo systemctl restart docker
📦 二、准备 Java 项目
假设你的项目是 Spring Boot 打包成的 app.jar,上传到服务器:
-
本地打包项目
mvn clean package得到
target/app.jar -
上传到服务器
使用scp或 SFTP 工具将app.jar上传到服务器某个目录,例如:scp target/app.jar root@your-server-ip:/root/myapp/
🐳 三、编写 Dockerfile
在项目目录下创建 Dockerfile:
# 使用 OpenJDK 基础镜像(根据你的 Java 版本选择)
FROM openjdk:11-jre-slim
# 设置工作目录
WORKDIR /app
# 复制 jar 文件到容器
COPY app.jar app.jar
# 暴露端口(如 Spring Boot 默认 8080)
EXPOSE 8080
# 启动命令
ENTRYPOINT ["java", "-jar", "app.jar"]
⚠️ 注意:确保
app.jar和Dockerfile在同一目录。
🧱 四、构建并运行 Docker 镜像
# 进入项目目录
cd /root/myapp
# 构建镜像(注意最后的 .)
docker build -t my-java-app:latest .
# 运行容器
docker run -d --name myapp -p 8080:8080 my-java-app:latest
✅ 五、验证部署
-
查看容器是否运行:
docker ps -
访问应用:
在浏览器打开:http://<你的服务器公网IP>:8080 -
查看日志:
docker logs myapp
🔁 六、(可选)使用 Docker Compose 管理
创建 docker-compose.yml:
version: '3'
services:
java-app:
build: .
ports:
- "8080:8080"
restart: unless-stopped
environment:
- SPRING_PROFILES_ACTIVE=prod
运行:
docker-compose up -d
🔐 七、安全建议
- 使用 Nginx 反向X_X + HTTPS(可配合腾讯云 SSL 证书)
- 避免使用 root 用户运行容器
- 使用
.dockerignore忽略不必要的文件 - 定期更新基础镜像和依赖
🌐 八、结合腾讯云其他服务(进阶)
| 服务 | 用途 |
|---|---|
| 腾讯云容器服务 TKE | 管理 Kubernetes 集群部署 |
| 私有镜像仓库 TCR | 存储和管理自定义 Docker 镜像 |
| 云数据库 CDB | 连接 MySQL 等数据库 |
| API 网关 + CLB | 负载均衡和流量管理 |
✅ 总结
通过 Docker 部署 Java 项目在腾讯云上的流程:
- 准备服务器并安装 Docker
- 上传 Java 的 jar 包
- 编写 Dockerfile 构建镜像
- 运行容器并开放端口
- (可选)使用 Docker Compose 或 TKE 管理
如果你提供具体的项目类型(如 Spring Boot、普通 Java Web、是否使用数据库等),我可以给出更定制化的 Dockerfile 和部署建议。欢迎继续提问!
CDNK博客