在实践中,不少开发者对云服务器的概念、其与本地环境的关系以及项目部署流程感到困惑。然而,掌握云服务器的使用是现代程序员不可或缺的技能。
理解云服务器
可以将云服务器理解为放置在远程机房的一台独立电脑。开发者可以通过SSH从本地计算机连接到这台远程电脑,并在其上部署MySQL、Redis、Ollama等应用服务,从而将开发环境与运行环境分离,减轻本地机器负担。
云服务提供商将大量硬件资源集中管理,形成数据中心,并通过分配公网IP,使开发者能够便捷地购买和使用这些“远程电脑”资源。
云服务器基本操作(Linux命令)
云服务器通常基于Linux系统,需要通过命令行进行操作。例如,使用 ls 查看文件列表,mkdir 创建目录,chmod +x 为脚本添加执行权限。
为了帮助初学者快速上手,可以通过在线的Linux命令模拟器进行练习,熟悉文件管理、系统操作以及Git、Docker等常用命令。
云服务器环境安装
1. 系统选择
首次购买或重置云服务器时,需要选择操作系统。推荐使用CentOS 7.6/7.9或Ubuntu 24+版本,它们有较为完善的一键安装脚本支持。
2. 安装脚本
2.1 Git 安装
CentOS
sudo yum install git
Ubuntu
apt-get install git
2.2 Docker 与 Portainer 安装
通过Git拉取安装脚本仓库并执行即可完成Docker及Portainer(一款Docker可视化管理系统)的安装。
mkdir dev-ops
cd dev-ops
git clone https://gitcode.com/Yao__Shun__Yu/xfg-dev-tech-docker-install.git
cd xfg-dev-tech-docker-install
chmod +x ubuntu_run_install_docker_local.sh # CentOS系统请使用对应的centos脚本
./ubuntu_run_install_docker_local.sh
脚本执行完成后,需在云服务器安全组中开放9000端口,即可通过 http://服务器公网IP:9000 访问Portainer。
2.3 可选:Java环境安装(JDK, Maven)
如果需要在服务器上直接构建Java项目,可以安装JDK和Maven。
cd xfg-dev-tech-docker-install/environment/jdk
chmod +x install-java.sh
./install-java.sh
安装Maven过程类似,进入对应目录执行脚本即可。对于Ubuntu系统,也可以直接使用apt命令安装。
2.4 核心服务安装(MySQL, Redis)
脚本库提供了通过Docker Compose一键安装常用中间件的能力。
cd xfg-dev-tech-docker-install
chmod +x run_install_software.sh
./run_install_software.sh
执行后按提示选择需要安装的软件,例如MySQL和Redis。脚本会自动处理依赖和初始化。
3. 应用配置
环境安装完成后,即可在本地的开发工具(如IntelliJ IDEA)中配置数据库连接,指向云服务器上Docker容器内的MySQL实例。这种方式隔离了服务环境,便于管理和维护。
项目部署实战
Docker部署的核心是将应用及其依赖打包成镜像。下面介绍三种构建与部署镜像的方案。
1. 配置文件准备
Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/xfg-studio/openjdk:8-jre-slim
MAINTAINER xiaofuge
ENV PARAMS=""
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ADD target/xfg-dev-tech-docker-deploy-app.jar /xfg-dev-tech-docker-deploy-app.jar
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /xfg-dev-tech-docker-deploy-app.jar $PARAMS"]
构建脚本 build.sh
docker build -t system/xfg-dev-tech-docker-deploy-app:1.0-SNAPSHOT -f ./Dockerfile .
2. 镜像构建方案
方案一:本地打包JAR,云服务器构建镜像
- 本地打包:在本地通过
mvn clean install生成JAR包。
- 上传文件:通过SFTP将整个项目目录(包含JAR包和Dockerfile)上传至云服务器。
- 远程构建:在云服务器项目目录下执行
./build.sh,完成镜像构建。
方案二:云服务器打包并构建镜像
- 拉取代码:在云服务器上使用
git clone拉取项目源码。
- 远程打包:进入项目目录,执行
mvn clean install生成JAR包。
- 远程构建:执行
./build.sh 构建镜像。
方案三:推送至镜像仓库
- 登录仓库:在阿里云容器镜像服务创建命名空间与仓库。
- 构建并推送:修改构建脚本,将镜像标签改为仓库地址,执行构建后推送到阿里云Docker Registry。
- 任何环境拉取:在其他云服务器上,可直接从该仓库拉取镜像运行,实现部署环境统一。
3. 部署与运行
docker-compose-app.yml
version: ‘3.8’
services:
xfg-dev-tech-docker-deploy-app:
image: system/xfg-dev-tech-docker-deploy-app:1.0-SNAPSHOT # 替换为你的镜像名
container_name: xfg-dev-tech-docker-deploy
ports:
- “8091:8091”
networks:
- my-network
networks:
my-network:
driver: bridge
将部署配置文件上传至云服务器,执行以下命令启动服务:
docker-compose -f docker-compose-app.yml up -d
启动后,即可通过 http://服务器公网IP:8091 访问已部署的SpringBoot应用。
总结
通过本文的步骤,可以系统性地完成从云服务器环境初始化(安装Docker、数据库等)到SpringBoot应用打包、Docker镜像构建与最终部署的全过程。掌握这套流程,能够显著提升应用部署的效率和环境一致性。