一、前期准备:服务器与域名

1. 云服务器购买

  • 推荐阿里云学生机,性价比高,适合学习 / 项目部署;
  • 操作系统建议选择 CentOS 7.x(与后续 yum 安装、Docker 兼容性最好)。

2. 域名备案(国内服务器必填)

  • 阿里云等国内服务器必须完成 ICP 备案,域名才能正常解析访问;
  • 无备案域名可通过服务器 IP + 端口临时访问,但不适合正式上线。

二、项目打包(Spring Boot 项目)

1. Maven 打包配置

pom.xml中添加spring-boot-maven-plugin插件,才能将项目打成可执行的 jar 包:

xml

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2. 打包常见问题与解决

  • 问题:本地代码运行正常,但打包失败
  • 排查方案
    1. 文件编码问题:IDEA 中 Settings → Editor → File Encodings,将全局、项目编码统一设置为UTF-8
    2. 依赖冲突:执行mvn clean install -U强制更新依赖;
    3. 主类未指定:在spring-boot-maven-plugin中添加mainClass配置。

三、服务器环境安装(Docker + 依赖)

1. 安装 Docker(CentOS)

执行以下命令一键安装并启动 Docker:

bash

运行

# 1. 更新yum包
yum update -y

# 2. 安装依赖工具
yum install -y yum-utils device-mapper-persistent-data lvm2

# 3. 设置Docker yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 4. 安装Docker
yum install -y docker-ce

# 5. 启动Docker并设置开机自启
/bin/systemctl start docker.service
/bin/systemctl enable docker.service

# 6. 验证安装
docker -v

2. 拉取常用镜像

提前拉取项目需要的环境镜像,避免部署时下载:

bash

运行

docker pull nginx
docker pull redis:5.0.3
docker pull java:8
docker pull mysql:5.7

3. 安装 Docker Compose(可选,用于多容器编排)

bash

运行

# 1. 下载二进制包
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 2. 添加执行权限
chmod +x /usr/local/bin/docker-compose

# 3. 验证安装
docker-compose -version

四、部署核心依赖(MySQL + Redis)

1. MySQL 5.7 部署(带数据 / 配置持久化)

① 创建宿主机挂载目录

bash

运行

mkdir -p /mnt/docker/mysql/{conf,logs,data}
cd /mnt/docker/mysql
② 启动 MySQL 容器

bash

运行

docker run -id \
  -p 3307:3306 \
  --name=c_mysql \
  -v /mnt/docker/mysql/conf:/etc/mysql/conf.d \
  -v /mnt/docker/mysql/logs:/logs \
  -v /mnt/docker/mysql/data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=root \
  mysql:5.7
  • -p 3307:3306:将宿主机 3307 端口映射到容器 3306 端口;
  • -v:将容器内的配置、日志、数据目录挂载到宿主机,防止容器删除数据丢失;
  • MYSQL_ROOT_PASSWORD=root:设置 root 用户密码为root,可自行修改。
③ 配置 my.cnf(可选)

/mnt/docker/mysql/conf目录创建my.cnf,配置 MySQL 参数:

ini

[mysqld]
# 字符集配置
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
# 时区配置
default-time_zone = '+8:00'

2. Redis 5.0.3 部署

bash

运行

docker run -id \
  --name=redis \
  -p 6379:6379 \
  redis:5.0.3

如需设置密码 / 持久化,可挂载配置文件到宿主机。


五、部署 Spring Boot 项目(Docker 方式)

1. Dockerfile 编写

在项目 jar 包同目录创建Dockerfile

dockerfile

# 基础镜像(已安装Java 8)
FROM java:8
# 作者信息
MAINTAINER yourname
# 将jar包复制到容器内
COPY your-project.jar /app.jar
# 容器启动命令
CMD ["java", "-jar", "/app.jar"]

2. 构建并启动容器

bash

运行

# 1. 构建镜像(在Dockerfile目录执行)
docker build -t blog-admin .

# 2. 启动容器(映射端口,连接MySQL/Redis)
docker run -id \
  --name=blog-admin \
  -p 8080:8080 \
  --link c_mysql:mysql \
  --link redis:redis \
  blog-admin
  • --link:容器间网络互通,Spring Boot 配置中可直接用mysql:3306连接数据库;
  • 需在application.yml中修改数据库连接地址为容器名。

六、关键概念补充(面试 / 部署必知)

1. Dockerfile 原理

  • Dockerfile 是文本文件,包含一条条构建指令;
  • 每条指令构建一层镜像,基于基础镜像最终生成可运行镜像;
  • 作用:开发、测试、运维环境完全一致,实现 “一次构建,到处运行”。

2. 传统 yum 安装 vs Docker 安装

表格

方式 优点 缺点
yum 安装 命令简单,适合新手 依赖与系统绑定,卸载易残留;版本冲突风险
Docker 安装 环境隔离,不污染宿主机;一键部署 / 迁移;数据可持久化 需掌握 Docker 命令,有一定学习成本

七、部署后验证

  1. 验证 MySQL/Redis 是否正常启动:docker ps查看容器状态;
  2. 验证项目接口:curl http://服务器IP:8080/接口地址
  3. 验证静态资源:浏览器访问服务器 IP + 端口,检查页面是否正常加载。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐