返回

四步搞定!Docker部署Spring Cloud微服务项目超详细教程

后端

使用 Docker 部署 Spring Cloud 微服务项目:阿里云服务器指南

随着微服务架构的兴起,Docker 作为一种轻量级容器虚拟化技术,因其高效和便捷性而备受青睐。本指南将分步指导您如何在基于 Linux 环境的阿里云服务器上使用 Docker 部署 Spring Cloud 微服务项目。

环境准备

服务器环境

  • 操作系统:Linux version 5.10.60-9.al8.x86_64
  • 内存:4核+16G
  • 带宽:10M 宽带

Docker 安装

# 更新系统
sudo apt-get update

# 安装 Docker
sudo apt-get install docker.io

# 启动 Docker 服务
sudo systemctl start docker

# 设置 Docker 开机自启
sudo systemctl enable docker

Maven 安装

# 下载 Maven
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz

# 解压 Maven
tar -xzvf apache-maven-3.8.6-bin.tar.gz

# 移动 Maven 到指定目录
sudo mv apache-maven-3.8.6 /opt/maven

# 配置环境变量
echo 'export M2_HOME=/opt/maven' >> ~/.bashrc
echo 'export PATH=$M2_HOME/bin:$PATH' >> ~/.bashrc

# 刷新环境变量
source ~/.bashrc

Spring Cloud 项目部署

项目准备

# 创建 Spring Cloud 项目目录
mkdir spring-cloud-demo

# 进入项目目录
cd spring-cloud-demo

# 初始化 Maven 项目
mvn archetype:generate -DgroupId=com.example -DartifactId=spring-cloud-demo -DarchetypeArtifactId=spring-boot-starter-parent -DinteractiveMode=false

# 进入项目子目录
cd spring-cloud-demo

配置项目

# 修改 pom.xml 文件,添加 Spring Cloud 依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
</dependencies>

# 修改 application.properties 文件,配置 Eureka 服务注册中心
spring.cloud.eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka

构建 Docker 镜像

# 打包项目
mvn clean package

# 构建 Docker 镜像
docker build -t spring-cloud-demo .

启动 Docker 容器

# 运行 Docker 容器
docker run -p 8080:8080 spring-cloud-demo

验证服务

# 访问 Eureka 服务注册中心
http://localhost:8761/

# 访问微服务
http://localhost:8080/

结语

通过本指南,您已成功在阿里云服务器上部署了 Spring Cloud 微服务项目。Docker 的应用让您能够轻松管理和部署微服务,从而提高项目的可扩展性和维护性。快来尝试一下吧!

常见问题解答

  1. Docker 容器无法启动,提示端口冲突。
    检查是否已关闭其他正在使用 8080 端口的进程。您还可以修改 Docker 容器的端口映射。

  2. 微服务无法向 Eureka 服务注册中心注册。
    确保 Eureka 服务注册中心正在运行并且微服务配置了正确的服务注册中心地址。

  3. 微服务之间无法通信。
    检查微服务是否正确配置了 OpenFeign 客户端和 Eureka 服务注册中心。

  4. Docker 镜像构建失败。
    检查 Maven 项目是否已正确打包,并且您的系统已安装 Docker。

  5. Spring Cloud 版本与 Docker 不兼容。
    确保 Spring Cloud 和 Docker 版本兼容。请参阅 Docker 文档了解受支持的版本。