在进行云计算适配之前,必须确保本地开发环境和云端服务器环境已经就绪。本指南以经典的Java Spring Boot应用为例,演示如何将其容器化并部署到云端Linux服务器。
1. 本地环境要求:
2. 云端服务器要求:
为了确保实操性,我们首先需要一个标准的Spring Boot应用。如果你已有项目,可跳过代码创建部分,直接关注打包和后续步骤。
1. 创建项目结构:
在本地工作目录创建如下文件结构:
src/main/java/com/example/demo/DemoApplication.java
src/main/resources/application.properties
pom.xml
2. 编写核心代码:
在 DemoApplication.java 中写入以下代码,提供一个简单的HTTP接口用于测试:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/health")
public String health() {
return "App is running on Cloud!";
}
}
3. 配置 pom.xml:
确保 pom.xml 中包含打包插件,这是生成可执行jar包的关键:
4.0.0
com.example
demo
1.0.0
org.springframework.boot
spring-boot-starter-parent
2.7.0
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
4. 打包应用:
在项目根目录下执行以下Maven命令,跳过测试并打包:
mvn clean package -DskipTests
执行成功后,会在 target 目录下生成 demo-1.0.0.jar 文件。记下这个文件的完整路径,下一步需要用到。
云计算适配的核心是“构建一次,到处运行”。我们需要编写 Dockerfile 将应用及其运行环境打包成一个镜像。
1. 创建 Dockerfile:
在项目根目录下(与 pom.xml 同级)创建一个名为 Dockerfile 的文件,注意大小写且无后缀名。写入以下内容:
第一阶段:构建环境(可选,此处简化为直接使用运行环境)
FROM openjdk:8-jre-alpine
维护者信息(可选)
LABEL maintainer="tech-expert"
设置工作目录
WORKDIR /app
将打包好的jar文件复制到镜像中
注意:这里的demo-1.0.0.jar必须与你实际打包的文件名一致
COPY target/demo-1.0.0.jar app.jar
暴露应用端口
EXPOSE 8080
设置JVM参数,优化云环境内存使用
ENV JAVA_OPTS="-Xms512m -Xmx512m"
启动命令
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
2. 配置说明:
在推送到云端之前,务必在本地完成构建和基础测试,确保镜像无误。
1. 构建镜像:
在项目根目录执行:
docker build -t my-cloud-app:1.0 .
参数解释:-t 指定镜像名称和标签,. 表示使用当前目录的 Dockerfile。
2. 本地运行测试:
执行以下命令启动容器:

docker run -d -p 8080:8080 --name test-app my-cloud-app:1.0
启动后,使用 curl 命令验证接口是否正常:
curl http://localhost:8080/health
如果返回 App is running on Cloud!,说明镜像构建成功。停止并删除测试容器:
docker stop test-app && docker rm test-app
登录到你的云服务器。如果尚未安装 Docker,请执行以下命令进行安装(CentOS 7):
1. 安装必要的工具包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 添加Docker官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3. 安装Docker Engine
sudo yum install -y docker-ce
4. 启动Docker服务
sudo systemctl start docker
5. 设置开机自启
sudo systemctl enable docker
安装完成后,执行 docker version 确认服务正常运行。
我们将通过 scp 命令将 Jar 包和 Dockerfile 传输到服务器,并在服务器上进行构建。这种方式比传输巨大的镜像文件更高效。
1. 传输文件:
打开本地终端,将 Jar 包和 Dockerfile 上传到服务器的 /root/cloud-app 目录:
在服务器上创建目录
ssh root@你的服务器IP "mkdir -p /root/cloud-app"
上传 Jar 包
scp target/demo-1.0.0.jar root@你的服务器IP:/root/cloud-app/
上传 Dockerfile
scp Dockerfile root@你的服务器IP:/root/cloud-app/
2. 云端构建镜像:
SSH 登录到服务器,进入目录并构建:
cd /root/cloud-app
docker build -t my-cloud-app:1.0 .
3. 运行容器:
在服务器上运行容器,并映射端口:
docker run -d \
-p 8080:8080 \
--name cloud-app-service \
--restart=always \
my-cloud-app:1.0
参数解释:
这是云适配中最容易出错的一步。即使容器运行正常,外部也无法访问。必须配置云厂商的安全组。
1. 配置云安全组(以阿里云/腾讯云为例):
2. 检查服务器内部防火墙:
如果使用的是 CentOS 7,可能需要关闭 firewalld 或放行端口:
查看防火墙状态
sudo firewall-cmd --state
临时放行8080端口
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
重载防火墙配置
sudo firewall-cmd --reload
完成所有配置后,进行最终验证。
1. 远程访问测试:
在本地浏览器或终端访问:
curl http://你的服务器公网IP:8080/health
如果看到 App is running on Cloud!,说明云计算适配成功。
2. 查看运行日志:
如果遇到问题,使用以下命令查看容器标准输出日志:
docker logs -f --tail 100 cloud-app-service
3. 常用运维命令:
docker stop cloud-app-servicedocker restart cloud-app-servicedocker rm -f cloud-app-service至此,你已成功完成从本地开发到云端部署的完整适配流程。这套方案消除了“在我机器上能跑”的环境差异,实现了应用的无缝云化迁移。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图