一、说明
本文配置环境为VMware虚拟机(4核CPU,4 GB内存,40GB磁盘),OS为openEuler 22.03 LTS ,虚拟机要求能联网。
二、安装docker环境
2.1 安装docker相关软件包
[root@node01 ~]# dnf -y install docker docker-compose
2.2 查看docker版本
[root@node01 ~]# docker version
Client:Version: 18.09.0EulerVersion: 18.09.0.323API version: 1.39Go version: go1.17.3Git commit: 172f8daBuilt: Wed Apr 19 02:01:22 2023OS/Arch: linux/amd64Experimental: falseServer:Engine:Version: 18.09.0EulerVersion: 18.09.0.323API version: 1.39 (minimum version 1.12)Go version: go1.17.3Git commit: 172f8daBuilt: Wed Apr 19 02:00:48 2023OS/Arch: linux/amd64Experimental: false
2.3 添加国内镜像源
系统默认从docker官方镜像源Docker hub拉取镜像,在国内从Docker hub拉取镜像会比较慢,而且可能因为网络原因导致拉取失败,此时就可以配置 “国内的加速器”。国内有许多的云服务商都配置了国内镜像加速器服务。
以配置华为云容器加速器为例,如下图所示,在华为云的所有服务中,找到容器中的“容器镜像服务SWR”,
点击左侧的“镜像资源”-->“镜像中心”,然后点击右上角的“镜像加速器”,打开如下图所示的窗口,并按其中的操作说明修改/etc/docker/daemon.json文件即可。
2.4 启动并设置为开机自启动
完成上述操作后,重启docker服务,命令如下:
[root@node01 ~]# systemctl restart docker
[root@node01 ~]# systemctl enable docker
三、前后端分离部署Web项目实战
以下以分布式微服务架构的开源项目(https://gitee.com/y_project/RuoYi-Cloud)为例,采用docker-compos容器编排的方式进行实战训练。
根据官方文档(http://doc.ruoyi.vip/ruoyi/)说明,该项目的系统运行环境要求如下:
- JDK >= 1.8
- MySQL >= 5.7
- Maven >= 3.0
根据官方文档信息,系统模板如下:
com.ruoyi
├── ruoyi-ui // 前端框架 [80]
├── ruoyi-gateway // 网关模块 [8080]
├── ruoyi-auth // 认证中心 [9200]
├── ruoyi-api // 接口模块
│ └── ruoyi-api-system // 系统接口
├── ruoyi-common // 通用模块
│ └── ruoyi-common-core // 核心模块
│ └── ruoyi-common-datascope // 权限范围
│ └── ruoyi-common-datasource // 多数据源
│ └── ruoyi-common-log // 日志记录
│ └── ruoyi-common-redis // 缓存服务
│ └── ruoyi-common-seata // 分布式事务
│ └── ruoyi-common-security // 安全模块
│ └── ruoyi-common-swagger // 系统接口
├── ruoyi-modules // 业务模块
│ └── ruoyi-system // 系统模块 [9201]
│ └── ruoyi-gen // 代码生成 [9202]
│ └── ruoyi-job // 定时任务 [9203]
│ └── ruoyi-file // 文件服务 [9300]
├── ruoyi-visual // 图形化管理模块
│ └── ruoyi-visual-monitor // 监控中心 [9100]
├──pom.xml // 公共依赖
利用docker部署该项目的部署架构如下图所示。
上图中,各容器实例提供的服务简介绍如下:
- ruoyi-nginx容器实例提供HTTP反向代理和Web服务
- ruoyi-gateway容器实例网关服务
- ruoyi-auth容器实例提供认证服务
- ruoyi-nacos容器实例提供注册中心和配置中心服务
- ruoyi-modules-XXX容器实例提供系统业务功能服务
- ruoyi-mysql容器实例提供数据库服务
- ruoyi-redis容器实例提供缓存和权限认证服务
- ruoyi-visual-monitor容器实例提供系统服务状态监控服务
3.1 准备工作
3.1.1 清空环境
为避免干扰,建议清除所有已有的镜像和容器,确保执行【docker ps -a】和【docker images】命令的输出均为空,如下图所示。
[root@node01 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@node01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
3.1.2 下载源码
若依开源项目(前后端分离版本)源码下载地址:https://gitee.com/y_project/RuoYi-Cloud
下载该项目源码的ZIP压缩包。
解压后的文件和目录如下:
3.1.3 修改配置文件
3.1.3.1 修改ruoyi-auth配置文件
编辑源码目录\ruoyi-auth\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。
3.1.3.2 修改ruoyi-gateway配置文件
编辑源码目录\ruoyi-gateway\src\main\resources下的bootstrap.yml配置文件,将其中端口号为8848前面的127.0.0.1替换成nacos容器名ruoyi-nacos,端口号为8718前面的127.0.0.1替换成服务器IP地址,如下所示。
3.1.3.3 修改ruoyi-modules-file配置文件
编辑源码目录\ruoyi-modules\ruoyi-file\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。
3.1.3.4 修改ruoyi-modules-gen配置文件
编辑源码目录\ruoyi-modules\ruoyi-gen\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。
3.1.3.5 修改ruoyi-modules-job配置文件
编辑源码目录\ruoyi-modules\ruoyi-job\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。
3.1.3.6 修改ruoyi-modules-system配置文件
编辑源码目录\ruoyi-modules\ruoyi-system\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。
3.1.3.7 修改ruoyi-auth配置文件
编辑源码目录\ruoyi-visual\ruoyi-monitor\src\main\resources下的bootstrap.yml配置文件,将其中的127.0.0.1替换成nacos容器名ruoyi-nacos,如下所示。