
"一篇搞定!超详细保姆级中间件部署指南"
语雀在线阅读 : https://www.yuque.com/yuqueyonghubra2ax/yncnyp/rlipobd8iqc0dsp4?singleDoc#
- 在当今软件开发的世界中,中间件扮演着至关重要的角色。
- 它们不仅帮助应用程序之间的通信,还提升了系统的扩展性、可靠性和性能。
- 无论是数据库连接、缓存管理还是消息队列,中间件的使用已经成为现代软件架构的标准。
- 为了帮助开发者更好地掌握这些关键技术,本博客将提供一系列关于流行中间件的部署教程。
- 包括利用Linux和Docker构建生产环境,我们都会一步步引导你完成中间件的配置和部署。
通过这个博客,你将学会如何在不同的环境中灵活部署和管理中间件,为你的应用程序提供坚实的技术基础。让我们一起踏上这趟学习之旅,深入探索那些推动现代软件开发的中间件技术吧!
VMware 安装配置 Ubuntu
下载安装VMware
- 官网下载速度慢的可以使用我百度网盘分享的链接来下载
- 百度网盘 | VMware 17.5.2
- 百度网盘没有会员? 我在网上找到了123网盘分享的( 登录就可以下载了 )
- 123云盘 | VMware-workstation-full-17.5.1
- 双击运行
.exe文件,一直默认安装即可(建议安装在非C/系统盘),并输入以下许可证密钥
▼bash复制代码MC60H-DWHD5-H80U9-6V85M-8280D
检查网络适配器
- VMware 安装完成后,需要确认自己的电脑是否已安装两个网络适配器:
VMware Network Adapter VMnet1和VMware Network Adapter VMnet8,否则会影响联网功能。
方法一 : **Windows + R** 输入 **cmd** 调出窗口,输入 **ipconfig** 查看网络配置

方法二 : **Windows + i** 调出设置 ➡️ 网络和 Internet ➡️ 高级网络设置 ➡️ 网络适配器

方法三 : 右键 **此电脑** ➡️ 管理 ➡️ 计算机管理 ➡️ 系统工具 ➡️ 设备管理器 ➡️ 网络适配器

- 如果在 VMware 安装完成后,并没有通过上述三种方式找到
VMnet1和VMnet8网络适配器 - 请参考 完美解决VMware安装后没有VMnet1和VMnet8的问题
Ubuntu下载
[Download - 官网]:
- 点击Ubuntu 22.04.4 LTS 下载页面中的
**Download 22.04.4**, - 即开始下载
**ubuntu-22.04.4-desktop-amd64.iso**
[Download - 清华镜像站]:
- 点击清华大学开源软件镜像站 - Ubuntu 22.04.4 下载
- 页面中的
**ubuntu-22.04.4-desktop-amd64.iso**
创建虚拟机
[Step 1]: 打开 VMware 软件,点击**创建新的虚拟机**

[Step 2]: 新建虚拟机向导如下图

启动虚拟机
[Step 1]: 打开 VMware 软件,即可看到新建的虚拟机 Ubuntu 64位,点击**开启此虚拟机**

[Step 2]: 键盘布局 ➡️ 更新和其它软件

[Step 3]: 安装类型 ➡️ 你在哪

[Step 4]: 你是谁 ➡️ 安装完成,重启

[Step 5]: 登录 Ubuntu 系统

安装 VWware Tools
- VMware Tools 作用请参考:https://docs.vmware.com/cn/VMware-Tools/index.html
[Step 1]: 如下图,**重新安装 VMware Tools(T)...**是灰色的,则需要关闭虚拟机

[Step 2]:直接在线安装吧!解决虚拟机安装 VMware Tools 灰色无法点击问题
▼bash复制代码# 更新软件源列表 sudo apt-get update # 更新软件 sudo apt-get upgrade # 下载安装 open-vm-tools-desktop sudo apt-get install open-vm-tools-desktop -y
安装 SSH 连接工具
- 将防火墙关闭
▼bash复制代码sudo ufw disable
- 判断是否开启SSH
▼bash复制代码# 判断是否已开启SSH ps -e | grep ssh # 没有开启则启动SSH service ssh start # 没有安装SSH则开启SSH服务 sudo apt-get install openssh-server # 安装完之后重启SSH服务 sudo /etc/init.d/ssh restart
- 如果 SSH 安装失败就直接包治百病三部曲
▼bash复制代码排山倒海第一部:sudo apt-get update 如果没效果进行B计划 葵花点穴第二部:sudo apt-get upgrade 如果 SSH 还是冥顽不灵不得不使出绝招 葵花宝典第三部:sudo apt-get install ssh 执行了以后执行安装的命令 : sudo apt-get install openssh-server
- 判断22端口是否启动
- 如果端口被占用,则需要打开 任务管理器 ,找到占用该端口的程序,把那个程序关掉
▼bash复制代码netstat -antulp | grep ssh
配置静态IP
[Step 1]: 设置 ➡️ settings

[Step 2]: 设置 ➡️ IPV4

[Step 3]: 查看网关相关参数 "WIN+R➡️输入control➡️网络和共享中心➡️以太网详细信息"**

[Step 4]: 配置IPV4➡️Manual➡️Address➡️Netmask➡️Gateway➡️DNS

[Step 5]: 使用本机Ping测试➡️WIN+R➡️输入cmd➡️输入ping (你设置的静态IP)

到这里VMware 安装配置 Ubuntu 就结束啦
VMware 安装配置 Centos
这里提一下, Centos 相关的操作系统, Linux社区已经不再维护了, 建议装 Ubuntu
下载安装VMware
- 官网下载速度慢的可以使用我百度网盘分享的链接来下载
- 百度网盘 | VMware 17.5.2
-
百度网盘没有会员? 我在网上找到了123网盘分享的( 登录就可以下载了 )
-
双击运行
**.exe**文件,一直默认安装即可(建议安装在非C/系统盘),并输入以下许可证密钥
▼bash复制代码MC60H-DWHD5-H80U9-6V85M-8280D
检查网络适配器
- VMware 安装完成后,需要确认自己的电脑是否已安装两个网络适配器:
VMware Network Adapter VMnet1和VMware Network Adapter VMnet8,否则会影响联网功能。
方法一 : **Windows + R** 输入 **cmd** 调出窗口,输入 **ipconfig** 查看网络配置

方法二 : **Windows + i** 调出设置 ➡️ 网络和 Internet ➡️ 高级网络设置 ➡️ 网络适配器

方法三 : 右键 **此电脑** ➡️ 管理 ➡️ 计算机管理 ➡️ 系统工具 ➡️ 设备管理器 ➡️ 网络适配器

- 如果在 VMware 安装完成后,并没有通过上述三种方式找到
VMnet1和VMnet8网络适配器 - 请参考完美解决VMware安装后没有VMnet1和VMnet8的问题
Centos 下载
[Download - 清华镜像站]:
- 官方源已经下线了, 所以这里提供清华源镜像站的 Centos
- 点击**Centos 8.5.2111 | 清华大学开源软件镜像站 **
- 页面中的
**Cent0S-8.5.2111-X86_64-dvd1.iso**
- 其他的镜像站比如阿里云 / 网易云同样提供 Centos 镜像
- 这里更推荐下载清华镜像站的, 看网上一些帖子说阿里云的会拉不了镜像( 还没验证过🤣 )
- 秉承着多一事不如少一事的原则, 能偷懒就偷懒的准则, 还是推荐下清华镜像站的 Centos
[Download - 阿里云镜像站]:
- 点击**Centos 8.5.2111 | 阿里云开源镜像站 **
- 页面中的
**Cent0S-8.5.2111-X86_64-dvd1.iso**
[Download - 网易云镜像站]:
- 点击**Centos 8.5.2111 | 网易云开源镜像站 **
- 页面中的
**Cent0S-8.5.2111-X86_64-dvd1.iso**
创建虚拟机
[Step 1]: 打开 VMware 软件,点击**创建新的虚拟机**

[Step 2]: 新建虚拟机向导如下图
[Way 1]: 简易极速安装

[Way 2]: 自定义安装:

启动虚拟机
[Step 1]: 打开 VMware 软件,即可看到新建的虚拟机 Centos 64位,点击**开启此虚拟机**
[Step 2]: 语言选择 ➡️ 安装目的地

[Step 3]: 选择存储配置 ➡️ 设置时区和日期

[Step 4]: 设置时区和日期 ➡️ 设置ROOT账户的密码

[Step 5]: 设置ROOT账户的密码 ➡️ 开始安装

配置静态IP
- 将虚拟机网络适配器修改成桥接模式
- 查看本地网络适配器及默认网关
- WIN+R 输入 control ->网络和共享中心 -> 以太网 -> 详细信息
- 编辑->虚拟网络编辑器->添加网络->修改网络适配器为本机网络适配器
- 修改虚拟机网络配置文件
▼bash复制代码vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 部分参数解释 :
**BOOTPROTO**** : 使用静态 IP 配置 ****ONBOOT**** : 在系统引导时是否激活此设备****IPADDR**** : 指明IP地址( 这是后面局域网内别的电脑访问的IP地址 )****GATEWAY**** : 默认网关( 改成本机的网关 )****DNS1**** : 第一个DNS服务器指向**
- 重启网络配置使其生效
▼bash复制代码systemctl restart network
到这里 Centos 的安装就结束啦~
XTerminal ( 终端工具 )
XTerminal 相关介绍
XTerminal 是一款为 Linux 和 macOS 用户设计的终端仿真器,它提供了一些增强的功能和特性,使得用户在命令行工作时更加高效和便捷。以下是 XTerminal 的一些主要特性和功能:
- 多标签页支持:XTerminal 允许用户在同一个窗口中打开多个标签页,方便在不同的会话之间切换,而无需打开多个终端窗口。
- 分屏功能:它支持在同一个标签页内分屏,用户可以同时查看和操作多个终端会话。这对于需要同时监控多个进程或在不同的环境中运行命令的用户非常有用。
- 主题和自定义:XTerminal 提供了多种主题和自定义选项,用户可以根据自己的喜好更改终端的外观,包括背景颜色、文本颜色、字体等。
- 插件支持:XTerminal 支持插件扩展功能,用户可以通过安装不同的插件来扩展终端的功能,例如增加对版本控制系统的支持、增强命令提示等。
- 快捷键支持:XTerminal 提供了丰富的快捷键配置,使用户能够更加高效地操作终端。例如,可以使用快捷键快速切换标签页、分屏,或执行常用命令。
- 兼容性:XTerminal 兼容性良好,能够与大多数 Unix 命令和工具协同工作,并且可以与多种 shell 兼容,如 Bash、Zsh 等。
- 性能优化:相比一些其他的终端仿真器,XTerminal 在性能上进行了优化,使得其能够处理大量输出或复杂的脚本,而不会出现卡顿或延迟。
下载安装 XTerminal
- 推荐一个颜值在线的连接工具 [XTerminal]
- 点击下载 :XTerminal | SSH连接工具
添加 SSH 连接
- 添加服务器连接
- 填写服务器连接信息
- 连接成功后界面如下, 这界面挺喜欢的, 哈哈哈!
MobaXterm ( 终端工具 )
MobaXterm 相关介绍
MobaXterm 是一款功能强大的终端仿真器和远程计算工具,专为 Windows 用户设计,提供了一站式解决方案,以便在本地和远程计算环境中工作。它结合了终端仿真、SSH 客户端、远程桌面、文件传输等多种功能,非常适合需要在不同服务器和网络设备上进行管理和操作的开发者、系统管理员以及网络工程师。以下是 MobaXterm 的一些主要特性和功能:
主要特性 :
- 多标签页终端:MobaXterm 支持多标签页,使用户能够在同一个窗口中打开多个终端会话,便于在不同会话之间快速切换和操作。
- 内置 X 服务器:MobaXterm 集成了 X11 服务器,支持在 Windows 上运行远程 Unix/Linux 应用的 GUI 界面,这对于需要远程访问带有图形界面的 Unix/Linux 程序的用户非常有用。
- 远程会话管理:支持多种远程连接协议,如 SSH、RDP(远程桌面)、VNC、X11、FTP、SFTP、Telnet 等,使用户能够轻松连接和管理各种类型的远程服务器和网络设备。
- SFTP 文件传输:在使用 SSH 连接时,MobaXterm 会自动开启 SFTP 支持,使用户可以通过图形界面方便地上传和下载文件。
- 插件支持:MobaXterm 支持通过插件扩展功能,用户可以根据需求安装不同的插件,添加额外的工具和功能,比如网络工具、开发库等。
- 多协议支持:除了 SSH 和 SFTP 外,MobaXterm 还支持 RDP、VNC、X11 等多种协议,适用于各种不同的远程管理场景。
- 多语言支持:MobaXterm 支持多种编程语言和脚本语言,包括 Bash、Perl、Python、Ruby 等,这使得它在跨平台开发和脚本执行方面也非常方便。
- 网络工具:内置了多种实用的网络工具,如端口扫描器、网络监控器、网络嗅探器等,方便用户在进行网络配置和故障排查时使用。
下载安装 MobaXterm
[Step 1] : 官网下载 MobaXterm ->**点我下载 | MobaXterm **

[Step 2] : 选择免费版下载

[Step 3] : 下载安装版

[Step 4] : 解压 ➡️ 安装 ➡️ 打开➡️ Session
添加 SSH 连接
[Step 1] : 填写相关信息

[Step 2] : 输入账号密码

[Step 3] : 连接成功 !

- 虽然 MobaXterm 的颜值看起来没有 XTerminal 那么高
- 但是它该有的功能基本都有, 而且是完全免费的 , XTerminal 有些功能收费
- 萝卜青菜各有所爱, 诸君根据自己的喜好选择相应的终端工具哈哈哈
Ubuntu 安装 Docker
准备条件
▼bash复制代码# 安装前先卸载操作系统默认安装的docker, sudo apt-get remove docker docker-engine docker.io containerd runc # 安装必要支持 sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
准备安装
▼bash复制代码#添加 Docker 官方 GPG key(可能国内现在访问会存在问题, 推荐用下面的阿里源) curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 阿里源(推荐使用阿里的gpg KEY) curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg #添加 apt 源(同样推荐使用阿里源): #Docker官方源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null #阿里apt源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null #更新源 sudo apt update sudo apt-get update
安装Docker
▼bash复制代码#安装最新版本的Docker sudo apt install docker-ce docker-ce-cli containerd.io #等待安装完成 #查看Docker版本 sudo docker version #查看Docker运行状态 sudo systemctl status docker
安装Docker命令补全工具
▼bash复制代码# 安装 bash-completion 包 sudo apt-get install bash-completion # 下载 Docker 自动补全脚本 sudo curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh # 加载自动补全脚本 source /etc/bash_completion.d/docker.sh
配置加速地址
▼bash复制代码# 创建docker目录 sudo mkdir -p /etc/docker # 配置 Docker 使用多个镜像加速器来提高从 Docker Hub 拉取镜像的速度 ######################## 命令开始 ######################### sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc" ] } EOF ######################## 命令结束 ######################### # 重新加载守护进程配置文件 sudo systemctl daemon-reload # 重新启动 Docker 服务 sudo systemctl restart docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.registry.cyou", "https://docker-cf.registry.cyou" ] } EOF
将当前用户添加到 docker 组
▼bash复制代码# 将 ubuntu 用户添加到 docker 组 sudo usermod -aG docker ubuntu # 注销并重新登录 exit # 验证是否更改成功 docker ps
- 出现以下结果为添加成功
Centos 安装 Docker
卸载旧版Docker( 如果之前装过Docker的话 )
▼bash复制代码yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
配置Docker的yum库和源sudu
▼bash复制代码yum install -y yum-utils
▼bash复制代码yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker
▼bash复制代码yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动和校验
▼bash复制代码# 启动Docker systemctl start docker # 停止Docker systemctl stop docker # 重启 systemctl restart docker # 设置开机自启 systemctl enable docker # 执行docker ps命令,如果不报错,说明安装启动成功 docker ps
配置镜像加速
▼bash复制代码# 创建目录 mkdir -p /etc/docker # 复制内容,注意把其中的镜像加速地址改成你自己的 ######################## 命令开始 ######################### tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc" ] } EOF ######################## 命令结束 ######################### # 重新加载配置 systemctl daemon-reload # 重启Docker systemctl restart docker
Centos 安装 Docker 就结束啦~
- 下面介绍两款目前市面上比较热门的部署面板工具
- 一款是
**宝塔linux面板**, 一款是**1panel**
宝塔Linux面板(一键部署工具)
相关介绍
宝塔面板** 是一款广受欢迎的Linux服务器管理软件,它提供了一键安装LNMP、LAMP、集群、监控、网站、FTP、数据库、Java等多种服务器管理功能,它直观的用户界面和简化的操作流程使得新手也能快速上手,轻松管理服务器。此外,宝塔面板还支持多种常见的Linux发行版,具有庞大的用户群体和活跃的社区,用户可以在社区中寻求帮助,分享经验,获取最新的使用技巧和教程。**
安装宝塔
[Step 1] : 选择对应的操作系统的命令来安装

[Step 2] : 输入 y 继续 等待下载完成....

[Step 3] : 出现如下画面即宝塔面板安装成功 !
- 下面的信息只会出现一次, 一定要保存好 !!!
启动宝塔
[Step 1] : 复制前面的内网面板地址到浏览器进行访问
- 第一次访问会提示不安全, 选择高级再继续访问即可
[Step 2] : 输入账号密码进行登录

[Step 3] : 绑定宝塔官网账号, 去宝塔官网进行注册然后绑定就行了
- 绑定成功后进入首页如下
安装中间件
[Step 1] : 软件商店 ➡️ 愉快安装中间件 !

[Step 2] : 安装 Mysql

[Step 3] : 耐心等待 Mysql 安装....
- 等待安装完成就可以使用中间件啦, 其他的中间件安装也是同理
- 使用服务器面板安装中间件非常简单, 基本不需要过多的学习, 基本开箱即用
到这里宝塔面板安装中间件就结束啦, 剩下的内容等待小伙伴自己再体验哦~
1Panel面板(一键部署工具)
相关介绍
1Panel 是一款现代化、开源的Linux服务器运维管理面板,它采用最新的前端技术和容器技术,使得服务器的运维管理更加简单、更安全,通过Web端轻松管理Linux服务器,包括应用管理、主机监控、文件管理、数据库管理、容器管理等。1Panel还提供了快速建站、安全可靠、一键备份等功能,支持一键备份和恢复,备份数据可在云端存储
下载安装 1Panel
[Step 1] : 安装 Ubuntu 对应的版本 :1Panel | Ubuntu | 运维面板

[Step 2] : 输入 1Panel 的安装目录
- 这边建议固定一个部署中间件的文件夹
- 后面使用Docker部署中间件的时候配置文件都可以放在一块
- 想要修改配置文件相关的参数都很方便, 不用找来找去的
- 这也是我出这篇教程的目的吧, 网上的部署教程纷杂, 挂载文件的目录都不同
- 我这里就将 1Panel
**/usr/local/etc**目录下
[Step 3] : 配置 1Panel 相关信息

启动 1Panel
[Step 1] : 访问 1Panel ➡️ 输入账号密码

[Step 2] : 进入 1Panel 首页
- 不得不说 1Panel 的页面做的真的很舒服呀 我非常喜欢这种简约的
安装中间件
[Step 1] : 应用商店 ➡️ 愉快安装中间件!

[Step 2] : 安装 Redis ( 前面已经用宝塔安装过Mysql, 这次安装Redis )

[Step 3] : 耐心等待安装...

[Step 4] : 安装成功 !

[Step 5] : 尝试本地连接工具是否成功连接
- 填写 Redis 连接信息
- 连接成功 !
[Step 6] : 查看 Redis 日志 | 容器 ➡️ 日志

- 是不是非常方便呢? 真 · 开箱即用 !
- 综合下来的体验感觉 1Panel 比 宝塔 好一些
- 而且 1Panel 的页面做的更深得我心 哈哈哈
- 当然各有各的看法爱好, 根据自己喜欢的来选择
1Panel 面板安装中间件就结束啦, 剩下的内容等待小伙伴自己再体验哦~
宝塔 与 1Panel 对比
| 对比维度 | 宝塔面板 | 1Panel |
|---|---|---|
| 开发语言 | Python | Go |
| 容器依赖 | 非核心功能 | 核心功能 |
| 安装速度 | 较慢 | 较快 |
| 系统侵入性 | 较高 | 较低 |
| 社区支持 | 庞大且活跃 | 较小但增长迅速 |
| 安全性 | 基本安全设置 | 更注重安全性 |
| 开源性 | 部分开源 | 完全开源 |
| 现代化程度 | 较为传统 | 现代且采用最新技术 |
| 功能丰富度 | 丰富 | 正在发展中 |
| 易用性 | 高 | 高 |
| 资源占用 | 较高 | 较低 |
| 兼容性 | 支持多种Linux发行版 | 支持多种Linux发行版 |
| 特色功能 | 网站管理、数据库管理、FTP管理等 | 快速建站、高效管理、安全可靠等 |
| 价格 | 免费版和付费版 | 完全免费 |
综合以上信息,宝塔面板在社区支持和功能丰富度方面表现较好,适合需要广泛支持和丰富功能的用户。而1Panel则在安装速度、系统侵入性和安全性方面有所优势,尤其适合对资源消耗敏感和追求现代化管理的用户。如果是初学者或者对开源项目感兴趣,1Panel可能是一个更好的选择。如果需要更多的功能和更广泛的社区支持,宝塔面板可能更适合。
Docker部署中间件
- 下面就开始中间件的部署教程啦~
- 这里的中间件的顺序并不代表部署顺序哦~
- 想部署哪个中间件就根据目录跳转就可以啦~😺
部署 MYSQL ( Docker )
[Step 1] : 拉取 MYSQL 镜像
▼bash复制代码docker pull mysql:8.0.33
[Step 2] : 创建 MYSQL 相关目录 ➡️ 启动 MYSQL 容器 ➡️ 拷贝文件 ➡️ 授权文件夹 ➡️ 删除容器
▼bash复制代码# 创建 MYSQL 相关目录 mkdir -p /data/mysql/{conf,log,data} # 启动 MYSQL 容器 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=ovoAdmin123 -d mysql:8.0.33 # 拷贝文件 docker cp mysql:/var/log /data/mysql docker cp mysql:/etc/my.cnf /data/mysql/conf # 授权文件夹 chmod 777 /data/mysql/{log,data} chmod 644 /data/mysql/conf/my.cnf # 删除容器 docker rm -f mysql
- 对应的目录下会创建有相应的文件夹
[Step 3] : 创建 MYSQL 容器
▼bash复制代码docker run -p 3306:3306 --name mysql \ -v /data/mysql/log:/var/log/mysql \ -v /data/mysql/data:/var/lib/mysql \ -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf \ -e TZ=Asia/Shanghai --restart=always \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:8.0.33
- 相关参数解释 :
docker run: 创建并运行一个容器, -d是让容器在后台运行-- name mysql: 给容器起一个名字, 名字必须唯一-v /data/mysql/log:/var/log/mysql: 挂载配置文件-p 3306:3306: 设置端口映射-e KEY = VALUE: 设置环境变量 -e就是environment的意思TZ=Asia/Shanghai: 设置数据库时区为东八区--restart=always: 自启动 ( 服务器重启后会自启动 )MYSQL_ROOT_PASSWORD: 数据库密码mysql:指定运行的镜像的名字, 后面可以跟版本号, 如果不跟默认最新版
[Step 4] : 查看 MYSQL 日志
▼bash复制代码docker logs -f mysql
- 没有 Error 就是启动成功了
[Step 5] : 使用工具连接 MYSQL
- 填写连接信息
- 测试连接成功 !
部署 Redis ( Docker )
[Step 1] : 拉取 Redis 镜像, 推荐使用 7 的 Redis 版本
▼bash复制代码docker pull redis:7.0.12
[Step 2] : 创建 Redis 相关目录 ➡️ 启动 Redis 容器 ➡️ 拷贝文件 ➡️ 授权文件夹 ➡️ 删除容器
▼bash复制代码# 创建 Redis 相关目录 mkdir -p /data/redis/{conf,data,log} touch /data/redis/log/redis.log touch /data/redis/conf/redis.conf # 启动 Redis 容器 docker run -p 6379:6379 --name redis -d redis:7.0.12 # 拷贝文件 docker cp redis:/data /data/redis docker cp redis:/etc/redis.log /data/redis/log docker cp redis:/etc/redis/redis.conf /data/redis/conf # 授权文件夹 chmod -R 777 /data/redis/conf/redis.conf /data/redis/log/redis.log /data/redis/data # 删除容器 docker rm -f redis
[Step 3] : 创建 Redis 容器
▼bash复制代码docker run --name redis \ -p 6379:6379 --restart=always \ -v /data/redis/data:/data \ -v /data/redis/log/redis.log:/etc/redis.log \ -v /data/redis/conf:/etc/redis/redis.conf \ -d redis:7.0.12 redis-server /etc/redis/redis.conf
- 相关参数解释 :
docker run:这是 Docker 的命令,用于创建并运行一个新的容器。--name redis:这个参数设置了容器的名称为redis,这样可以更容易地管理和访问该容器。-p 6379:6379:这表示端口映射,将宿主机的 6379 端口映射到容器的 6379 端口。--restart=always: 表示如果容器退出或 Docker 服务重启,Docker 都会自动重启该容器。-v /data/redis/data:/data:这是一个卷映射,将宿主机的/data/redis/data目录映射到容器内的/data目录。这用于持久化数据,即使容器被删除,数据仍然保存在宿主机上。-d:这个标志表示以守护进程模式运行容器,即容器将在后台运行。redis:7.0.12:这是要运行的 Docker 镜像的名称和版本号。redis-server /etc/redis/redis.conf:这是容器内运行的命令,redis-server是启动 Redis 服务的命令,/etc/redis/redis.conf指定了 Redis 服务使用的配置文件路径。
[Step 4] : 查看 Redis 日志
▼bash复制代码docker logs -f redis
[Step 4] : 用Redis连接工具查看是否成功部署 Redis
- 填写 Redis 连接信息
- 连接成功 !
部署 RabbitMQ ( Docker )
[Step 1] : 拉取 RabbitMQ 镜像
▼bash复制代码docker pull rabbitmq:3.8-management
[Step 2] : 创建目录 ➡️ 授权文件夹
▼bash复制代码# 创建目录 mkdir -p /data/rabbitmq/{conf,data,log} # 授权文件夹 chmod -R 777 /data/rabbitmq/{conf,data,log}
[Step 3] : 创建 RabbitMQ 容器
▼shell复制代码docker run --restart=always --name rabbitmq \ -p 15672:15672 -p 5672:5672 \ -e RABBITMQ_DEFAULT_USER=rabbit \ -e RABBITMQ_DEFAULT_PASS=rabbit \ -v /data/rabbitmq/data:/var/lib/rabbitmq \ -v /data/rabbitmq/conf:/etc/rabbitmq \ -v /data/rabbitmq/log:/var/log/rabbitmq \ -d rabbitmq:3.8-management
相关参数解释 :
docker run: 启动一个新的 Docker 容器。--restart=always: 容器意外退出或 Docker 服务重启,Docker 将始终自动重新启动该容器。--name rabbitmq: 给容器命名为rabbitmq,以便于管理和引用该容器。-p 15672:15672 -p 5672:5672: 端口映射。将主机的 5672 端口映射到容器的 5672 端口。-e RABBITMQ_DEFAULT_USER=rabbit: 指定默认的 RabbitMQ 用户名为rabbit。-e RABBITMQ_DEFAULT_PASS=rabbit: 指定默认的 RabbitMQ 密码为rabbit。-v /data/rabbitmq/data:/var/lib/rabbitmq: 数据持久化-v /data/rabbitmq/conf:/etc/rabbitmq: 配置文件持久化-v /data/rabbitmq/log:/var/log/rabbitmq: 日志文件持久化-d: 容器将在后台运行,而不是占用当前的终端会话。
[Step 4] : 查看 RabbitMQ 启动日志
▼bash复制代码docker logs -f rabbitmq
[Step 5] : 访问 RabbitMQ 控制台
▼bash复制代码服务器IP / 虚拟机静态IP : 15672 例如我的控制台地址为 : http://172.29.32.233:15672/
- 访问发现无法访问, 查看日志发现并没有开启控制台管理
- 开启控制台管理 : 进入 RabbitMQ 容器 ➡️ 开启控制台管理
▼bash复制代码# 进入 RabbitMQ 容器 docker exec -it rabbitmq bash # 开启控制台管理 rabbitmq-plugins enable rabbitmq_management
[Step 6] : 登录 RabbitMQ 控制台

- 如果浏览器出现身份验证
- 进入 RabbitMQ 容器 ➡️ 添加管理员账号 ➡️ 授权账号管理员权限 ➡️ 查看账号列表
▼bash复制代码# 进入 RabbitMQ 容器 docker exec -it rabbitmq bash # 添加管理员账号 rabbitmqctl add_user 用户名 密码 # 授权账号管理员权限 rabbitmqctl set_user_tags 用户名 administrator # 查看账号列表 rabbitmqctl list_users
- 重启 RabbitMQ 容器➡️ 再次访问➡️ 成功访问 !
▼bash复制代码# 重启容器 docker restart rabbitmq
部署 ElasticSearch ( Docker )
[Step 1] : 拉取 ElasticSearch 镜像
▼bash复制代码docker pull elasticsearch:7.14.0
[Step 2] : 创建网络➡️创建目录➡️启动容器➡️拷贝文件➡️授权文件➡️删除容器
▼bash复制代码# 创建网络 docker network create elastic # 创建目录 mkdir -p /data/elasticsearch/{config,data,logs,plugins} # 启动容器 docker run --name elasticsearch --restart=always \ -p 9200:9200 -p 9300:9300 \ --privileged --network elastic \ -e "discovery.type=single-node" \ -d elasticsearch:7.14.0 # 拷贝文件 docker cp -a elasticsearch:/usr/share/elasticsearch/config/ /data/elasticsearch docker cp -a elasticsearch:/usr/share/elasticsearch/data/ /data/elasticsearch docker cp -a elasticsearch:/usr/share/elasticsearch/logs/ /data/elasticsearch docker cp -a elasticsearch:/usr/share/elasticsearch/plugins/ /data/elasticsearch # 授权文件 chmod -R 777 /data/elasticsearch/{config,data,logs,plugins} # 删除容器 docker rm -f elasticsearch
[Step 3] : 启动 ElasticSearch 容器
▼bash复制代码docker run --name elasticsearch --restart=always \ -p 9200:9200 -p 9300:9300 \ --privileged=true --network elastic \ -e ES_JAVA_OPTS="-Xms256m -Xmx512m" \ -e "discovery.type=single-node" \ -e KEYSTORE_USERNAME=elastic \ -e KEYSTORE_PASSWORD=elastic \ -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -v /data/elasticsearch/data:/usr/share/elasticsearch/data \ -v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \ -v /data/elasticsearch/config:/usr/share/elasticsearch/config \ -d elasticsearch:7.14.0
相关参数解释 :
--name elasticsearch: 给这个容器起名为elasticsearch,方便管理和识别。--restart=always: 设置容器的重启策略。当容器意外停止时,它将自动重启。-p 9200:9200 -p 9300:9300: 端口映射, 9200 端口用于 HTTP 访问, 9300 端口用于节点间的内部通信--privileged=true: 以特权模式运行容器,这赋予容器更多的系统权限,类似于主机上的 root 权限。--network elastic: 将容器加入名为elastic的 Docker 网络中,这可以方便容器之间的通信。-e ES_JAVA_OPTS="-Xms256m -Xmx512m": 用于配置 JVM 的最大最小堆内存。-e "discovery.type=single-node": 设置 Elasticsearch 为单节点模式-e KEYSTORE_USERNAME=elastic和-e KEYSTORE_PASSWORD=elastic: 设置 Elasticsearch 的认证用户名和密码为elastic,这些变量将用于存储在密钥库中的凭据。-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins: 插件持久化-v /data/elasticsearch/data:/usr/share/elasticsearch/data: 数据持久化-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs: 日志持久化-v /data/elasticsearch/config:/usr/share/elasticsearch/config: 配置持久化-d: 以后台模式(守护进程模式)运行容器。elasticsearch:7.14.0: 指定使用elasticsearch:7.14.0镜像启动容器。
[Step 4] : 访问 ElasticSearch 服务
▼bash复制代码# IP地址改成自己的 http://172.29.32.233:9200/
部署 Kibana ( Docker )
[Step 1] : 拉取 Kibana 镜像
▼bash复制代码docker pull kibana:7.14.0
[Step 2] : 创建目录 ➡️ 启动容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器
▼bash复制代码# 创建目录 mkdir -p /data/kibana/{conf,plugins} # 启动容器 docker run --name kibana --restart=always \ -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \ -e "I18N_LOCALE=zh-CN" \ -p 5601:5601 --network=elastic \ -d kibana:7.14.0 # 拷贝文件 docker cp kibana:/usr/share/kibana/config/kibana.yml /data/kibana/conf/ # 授权文件 chmod -R 777 /data/kibana/conf/kibana.yml /data/kibana/plugins # 删除容器 docker rm -f kibana
[Step 3] : 启动 Kibana 容器
▼bash复制代码docker run --name kibana --restart=always \ -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \ -e "I18N_LOCALE=zh-CN" \ -p 5601:5601 --network=elastic \ -v /data/kibana/plugins:/usr/share/kibana/plugins \ -v /data/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml \ -d kibana:7.14.0
相关参数解释 :
docker run: 这是用来启动一个新的 Docker 容器的命令。--name kibana: 通过给容器指定一个名称,可以更方便地管理和操作容器。--restart=always: 无论容器因为什么原因停止,Docker 守护进程都会自动尝试重新启动它-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200: 告诉 Kibana 连接到名为elasticsearch的 Elasticsearch 服务,地址为http://elasticsearch:9200。-e "I18N_LOCALE=zh-CN": 将 Kibana 的界面语言设置为简体中文(zh-CN)。-p 5601:5601: 将宿主机的5601端口映射到容器的5601端口。--network=elastic: 将容器连接到名为elastic的 Docker 网络。这使得 Kibana 可以通过 Docker 网络与elasticsearch容器通信,而不需要通过宿主机网络。-v /data/kibana/plugins:/usr/share/kibana/plugins: 插件持久化-v /data/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml: 配置持久化-d kibana:7.14.0以守护进程模式运行容器(后台运行),并指定使用kibana:7.14.0镜像
[Step 4] : 访问 Kibana 控制台
▼bash复制代码# 换成自己的IP地址 http://172.29.32.233:5601/
部署 Minio ( Docker )
[Step 1] : 拉取 Minio 镜像
▼bash复制代码docker pull minio/minio
[Step 2] : 启动 Minio 容器
▼bash复制代码docker run --name minio --restart=always \ -p 9000:9000 -p 9090:9090 \ -e "MINIO_ROOT_USER=minio" \ -e "MINIO_ROOT_PASSWORD=admin123456" \ -v /data/minio/data:/data \ -v /data/minio/conf:/root/.minio \ -d minio/minio server \ /data --console-address ":9090" -address ":9000"
[Step 3] : 访问 Minio 控制台
▼bash复制代码# 换成自己的IP地址 http://172.29.32.233:9090/login
[Step 4] : 创建 Bucket 容器

[Step 4] : 修改访问权限为 public
部署 MongoDb ( Docker )
[Step 1] : 拉取 MongoDb 镜像
▼bash复制代码docker pull mongo
[Step 2] : 创建目录 ➡️ 创建容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器
▼bash复制代码# 创建目录 mkdir -p /data/mongo/{db,log} # 创建容器 docker run --restart=always --name mongo \ -p 27017:27017 \ -e TZ=Asia/Shanghai \ --privileged=true \ -e MONGO_INITDB_ROOT_USERNAME=mongo \ -e MONGO_INITDB_ROOT_PASSWORD=mongo \ -d mongo # 拷贝文件 docker cp mongo:/data/db /data/mongo/ # 授权文件 chmod -R 777 /data/mongo/{db,log} # 删除容器 docker rm -f mongo
[Step 3] : 启动 MongoDb 容器
▼bash复制代码docker run --restart=always --name mongo \ -p 27017:27017 \ -e TZ=Asia/Shanghai \ -v /data/mongo/data:/data/db \ -v /data/mongo/log:/data/log \ --privileged=true \ -e MONGO_INITDB_ROOT_USERNAME=mongo \ -e MONGO_INITDB_ROOT_PASSWORD=mongo \ -d mongo
[Step 4] : 测试连接 MongoDb
- 填写连接信息
- 测试连接成功
部署 Nacos ( Docker )
[Step 1] : 拉取 Nacos 镜像
▼bash复制代码docker pull nacos/nacos-server:v2.1.1
[Step 2] : 创建目录 ➡️ 创建容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器
▼bash复制代码# 创建目录 mkdir -p /data/nacos/{conf,logs,data} # 创建容器 docker run -p 8848:8848 --name nacos -d nacos/nacos-server:v2.1.1 # 拷贝文件 docker cp nacos:/home/nacos/conf /data/nacos docker cp nacos:/home/nacos/data /data/nacos docker cp nacos:/home/nacos/logs /data/nacos # 授权文件 chmod 777 /data/nacos/{conf,logs,data} # 删除容器 docker rm -f nacos
[Step 3] : 创建 Nacos 数据持久化数据库
nacos.sql

[Step 4] : 启动 Nacos 容器
**MYSQL_SERVICE_HOST=192.168.100.233**: 修改为自己的MYSQL的IP**MYSQL_SERVICE_PASSWORD=123456**** : 修改为自己的MYSQL密码****MYSQL_SERVICE_DB_NAME**** : 换成自己Nacos对应数据库名称**
▼bash复制代码docker run -d \ -e MODE=standalone \ --privileged=true \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.100.233 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e TIME_ZONE='Asia/Shanghai' \ -v /data/nacos/logs:/home/nacos/logs \ -v /data/nacos/data:/home/nacos/data \ -v /data/nacos/conf:/home/nacos/conf \ -p 8848:8848 -p 9848:9848 -p 9849:9849 \ --name nacos --restart=always nacos/nacos-server:v2.1.1
[Step 5] : 查看 Nacos 启动日志
▼bash复制代码docker logs -f nacos
[Step 6] : 访问 Nacos 控制台
▼bash复制代码# 换成自己的IP http://192.168.100.233:8848/nacos/#/login
[Step 7] : 登录进入 Nacos 控制台
▼bash复制代码默认账号密码均为 nacos
部署 Kafka ( Docker )
Kafka对于zookeeper是强依赖,保存kafka相关的节点数据,所以安装Kafka之前必须先安装zookeeper
[Step 1] : 部署 Zookeeper -> 拉取 Zookeeper 镜像 ➡️ 启动 Zookeeper 容器
▼bash复制代码docker pull zookeeper:3.4.14 docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14
[Step 2] : 部署 Kafka 服务 -> 拉取镜像 ➡️ 启动Kafka容器
▼bash复制代码# 拉取 Kafka 镜像 docker pull wurstmeister/kafka:2.12-2.3.1 # 启动Kafka容器 - 记得修改成自己的IP地址还有Kafka的端口 docker run -d --name kafka \ --env KAFKA_ADVERTISED_HOST_NAME=192.168.100.233 \ --env KAFKA_ZOOKEEPER_CONNECT=192.168.100.233:2181 \ --env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.100.233:9092 \ --env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \ --env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" \ -p 9092:9092 wurstmeister/kafka:2.12-2.3.1
[Step 3] : 查看 Kafka 启动日志
▼bash复制代码docker logs -f kafka
部署 RocketMQ ( Docker )
[Step 1] : 拉取 RocketMQ 镜像
▼bash复制代码docker pull apache/rocketmq:5.1.0
[Step 2] : 创建容器共享网络 rocketmq
▼bash复制代码docker network create rocketmq
为什么要创建 docker 共享网络?
- 容器间通信:创建一个 Docker 网络可以确保同一个网络中的容器可以通过容器名称进行通信,而不需要知道对方的 IP 地址。这对于需要相互通信的服务非常重要,比如 RocketMQ 的多个组件(如 NameServer 和 Broker)。
- 隔离性和安全性:Docker 网络提供了一个隔离的网络环境,不同网络中的容器彼此隔离。这增加了安全性,防止外部或其他不相关的容器访问敏感服务。
- 简化配置:使用 Docker 网络,配置变得更加简单。容器可以通过名称互相访问,无需担心容器重启后 IP 地址发生变化。
[Step 3] : 部署 NameServer 前提条件 创建目录 ➡️ 授予文件 ➡️ 创建容器 ➡️ 拷贝启动脚本 ➡️ 删除容器
▼bash复制代码# 创建目录 mkdir -p /data/rocketmq/nameserver/{bin,logs} # 授权文件 chmod 777 -R /data/rocketmq/nameserver/* # 创建容器 docker run -d \ --privileged=true --name rmqnamesrv \ apache/rocketmq:5.1.0 sh mqnamesrv # 拷贝启动脚本 docker cp rmqnamesrv:/home/rocketmq/rocketmq-5.1.0/bin/runserver.sh /data/rocketmq/nameserver/bin/ # 删除容器 NameServer docker rm -f rmqnamesrv
[Step 4] : 启动容器**NameServer**
▼bash复制代码# 启动容器 NameServer docker run -d --network rocketmq \ --privileged=true --restart=always \ --name rmqnamesrv -p 9876:9876 \ -v /data/rocketmq/nameserver/logs:/home/rocketmq/logs \ -v /data/rocketmq/nameserver/bin/runserver.sh:/home/rocketmq/rocketmq-5.1.0/bin/runserver.sh \ apache/rocketmq:5.1.0 sh mqnamesrv # 部分命令解释 : 1. -e "MAX_HEAP_SIZE=256M" 设置最大堆内存和堆内存初始大小 2. -e "HEAP_NEWSIZE=128M" 设置新生代内存大小 # 查看启动日志 docker logs -f rmqnamesrv
[Step 5] : 查看 NameServer 启动日志
- 看到 'The Name Server boot success..', 表示NameServer 已成功启动。
[Step 6] : 部署 Broker + Proxy
- 创建挂载文件夹并授权
▼bash复制代码mkdir -p /data/rocketmq/broker/{store,logs,conf,bin} chmod 777 -R /data/rocketmq/broker/*
[Step 7] : 创建**broker.cnf**文件
▼bash复制代码vim /data/rocketmq/broker/conf/broker.conf # nameServer 地址多个用;隔开 默认值null # 例:127.0.0.1:6666;127.0.0.1:8888 namesrvAddr = 192.168.100.100:9876 # 集群名称 brokerClusterName = DefaultCluster # 节点名称 brokerName = broker-a # broker id节点ID, 0 表示 master, 其他的正整数表示 slave,不能小于0 brokerId = 0 # Broker服务地址 String 内部使用填内网ip,如果是需要给外部使用填公网ip brokerIP1 = 192.168.100.100 # Broker角色 brokerRole = ASYNC_MASTER # 刷盘方式 flushDiskType = ASYNC_FLUSH # 在每天的什么时间删除已经超过文件保留时间的 commit log,默认值04 deleteWhen = 04 # 以小时计算的文件保留时间 默认值72小时 fileReservedTime = 72 # 是否允许Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true # 是否允许Broker自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=true # 禁用 tsl tlsTestModeEnable = false # 下面是没有注释的版本, 记得修改"namesrvAddr", "brokerIP1"的地址 namesrvAddr = 192.168.100.233:9876 brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 brokerIP1 = 192.168.100.233 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH deleteWhen = 04 fileReservedTime = 72 autoCreateTopicEnable=true autoCreateSubscriptionGroup=true tlsTestModeEnable = false
[Step 8] : 拷贝启动脚本
▼bash复制代码# 启动 Broker 容器 docker run -d \ --name rmqbroker --privileged=true \ apache/rocketmq:5.1.0 sh mqbroker # 拷贝脚本文件 docker cp rmqbroker:/home/rocketmq/rocketmq-5.1.0/bin/runbroker.sh /data/rocketmq/broker/bin
**[Step 9] : 启动容器 Broker **
▼bash复制代码# 删除容器 Broker docker rm -f rmqbroker # 启动容器 Broker docker run -d --network rocketmq \ --restart=always --name rmqbroker --privileged=true \ -p 10911:10911 -p 10909:10909 \ -v /data/rocketmq/broker/logs:/root/logs \ -v /data/rocketmq/broker/store:/root/store \ -v /data/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf \ -v /data/rocketmq/broker/bin/runbroker.sh:/home/rocketmq/rocketmq-5.1.0/bin/runbroker.sh \ -e "NAMESRV_ADDR=rmqnamesrv:9876" \ apache/rocketmq:5.1.0 sh mqbroker --enable-proxy -c /home/rocketmq/broker.conf # 查看启动日志 docker logs -f rmqbroker
- 启动成功日志如下
[Step 10] : 部署RocketMQ控制台(rocketmq-dashboard)
- 拉取镜像
▼bash复制代码docker pull apacherocketmq/rocketmq-dashboard:latest
[Step 11] : 启动容器 Rocketmq-dashboard
▼bash复制代码docker run -d \ --restart=always --name rmq-dashboard \ -p 8080:8080 --network rocketmq \ -e "JAVA_OPTS=-Xmx256M -Xms256M -Xmn128M -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \ apacherocketmq/rocketmq-dashboard
[Step 12] : 查看启动日志
▼bash复制代码docker logs -f rmq-dashboard
[Step 13] : 访问RMQ控制台
- http://192.168.100.233:8080/** ( IP地址改成自己的 )**
[Step 14] : 查看创建的 RocketMQ
部署 Seata ( Docker )
[Step 1] : 创建对应的**seata**数据库, 也就是下面的的**seata.sql**文件
seata.sql
[Step 2] : 拉取 Seata 镜像
▼bash复制代码docker pull seataio/seata-server:1.5.2
[Step 3] : 创建目录 ➡️ 创建容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器
▼bash复制代码# 创建目录 mkdir -p /data/seata/conf # 创建容器 docker run -d -p 8091:8091 -p 7091:7091 --name seata seataio/seata-server:1.5.2 # 拷贝文件 docker cp seata:/seata-server/resources/. /data/seata/conf # 授权文件 chmod 777 /data/seata/conf # 删除容器 docker rm -f seata
[Step 4] : 修改配置文件**application.yml**
- 这里配置Nacos和mysql的配置, 所以要保证这两个服务正常启动
**application.yml**中需要修改的地方, 换成自己的Nacos地址- Mysql数据库密码换成自己的, 其他保持跟我的一样就可以啦~
▼bash复制代码server: port: 7091 spring: application: name: seata-server logging: config: classpath:logback-spring.xml file: path: ${log.home:${user.home}/logs/seata} extend: logstash-appender: destination: 127.0.0.1:4560 kafka-appender: bootstrap-servers: 127.0.0.1:9092 topic: logback_to_logstash console: user: username: seata password: seata seata: config: type: nacos nacos: server-addr: 192.168.100.233:8848 namespace: group: DEFAULT_GROUP username: nacos password: nacos registry: type: nacos nacos: application: seata-server server-addr: 192.168.100.233:8848 group: DEFAULT_GROUP namespace: cluster: default username: nacos password: nacos store: mode: db db: datasource: druid db-type: mysql driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.100.233:3306/pmhub-seata?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true user: root password: 123456 min-conn: 10 max-conn: 100 global-table: global_table branch-table: branch_table lock-table: lock_table distributed-lock-table: distributed_lock query-limit: 1000 max-wait: 5000 security: secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017 tokenValidityInMilliseconds: 1800000 ignore: urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login,/metadata/v1/**
- 启动Seata容器 -
SEATA_IP=192.168.100.233改成自己服务器的地址
▼bash复制代码docker run --name seata \ -p 8091:8091 \ -p 7091:7091 \ -e SEATA_IP=192.168.100.100 \ -v /data/seata/conf:/seata-server/resources \ --privileged=true \ -d \ seataio/seata-server:1.5.2
- 启动成功如图
部署 Sentinel ( Docker )
- 一行命令搞定
- 账号密码可自己定制, AUTH_USERNAME / AUTH_PASSWORD
▼bash复制代码docker run -d \ -p 8090:8858 \ --name sentinel \ --restart=always \ -e AUTH_USERNAME=sentinel \ -e AUTH_PASSWORD=sentinel \ bladex/sentinel-dashboard:1.8.5
- 查看启动 Sentinel 日志
- 访问 http://192.168.100.233:8090 部署在服务器换成服务器IP即可
部署 SkyWalking ( Docker )
- 安装ElasticSearch7
- 安装Skywalking-OAP
- 安装Skywalking UI
[Step 1] : ElasticSearch 安装
▼bash复制代码docker pull elasticsearch:7.14.0
▼bash复制代码docker run --restart=always -d \ --name elasticsearch --privileged=true \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms256m -Xmx512m" \ -e KEYSTORE_USERNAME=elastic \ -e KEYSTORE_PASSWORD=elastic \ -v /data/elasticsearch/data:/usr/share/elasticsearch/data \ -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -p 9200:9200 -p 9300:9300 \ elasticsearch:7.14.0
[Step 2] : Skywalking OAP安装
▼bash复制代码docker pull apache/skywalking-oap-server:8.6.0-es7
▼bash复制代码docker run -d \ --name skywalking-oap --restart always \ -p 11800:11800 -p 12800:12800 \ --privileged=true \ -e TZ=Asia/Shanghai \ -e SW_STORAGE=elasticsearch7 \ -e SW_STORAGE_ES_CLUSTER_NODES=192.168.100.233:9200 \ -v /etc/localtime:/etc/localtime:ro \ apache/skywalking-oap-server:8.6.0-es7
-
说明 :
-
-e SW_STORAGE=elasticsearch7: 存储服务采用ElasticSearch7 -
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.100.233:9200:存储服务路径(IP+Port) -
Skywalking UI安装
▼bash复制代码docker pull apache/skywalking-ui:8.6.0
▼bash复制代码docker run -d \ --name skywalking-ui --restart always \ -p 8097:8080 --privileged=true \ --link skywalking-oap:skywalking-oap \ -e TZ=Asia/Shanghai \ -e SW_OAP_ADDRESS=192.168.100.233:12800 \ -v /etc/localtime:/etc/localtime:ro \ apache/skywalking-ui:8.6.0
-
说明 :
-
-p 8097:8080: Skywalking UI映射端口为8091 -
-e SW_OAP_ADDRESS=192.168.100.233:12800: 指定Skywalking OAP服务地址 -
访问
**http://192.168.100.233:8097**改成自己的IP
到这里SkyWalking就部署完毕了.
部署 JDK11 ( Docker )
**[Step 1] : 下载JDK11 - **JDK 11 | Oracle 甲骨文官网

[Step 2] : jdk11上传服务器**/root/jdk11**** 可自行创建文件夹**
- 进入目录
**/root/jdk11**解压文件
▼bash复制代码tar -zxvf jdk-11.0.22_linux-x64_bin.tar.gz
- 解压后 进入
**/root/jdk11/jdk-11.0.22**创建**jre**文件
▼bash复制代码./bin/jlink --module-path jmods --add-modules java.desktop --output jre
[Step 3] : 设置环境变量
▼bash复制代码cd ~ vim ~/.bashrc #ubuntu #分开两条命名执行 按i进入INSERT模式 vim /etc/profile #centos
- 添加如下配置
▼bash复制代码export JAVA_HOME=/root/jdk11/jdk-11.0.22 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
按Esc键,输入 :wq! 保存并退出。
[Step 4] : 让配置生效
▼bash复制代码source ~/.bashrc #ubuntu source /etc/profile #centos
[Step 5] : 查看jdk是否生效
▼bash复制代码java -version
部署 EMQX ( Docker )
[Step 1] : 拉取 EMQX 镜像
▼bash复制代码docker pull emqx/emqx:latest
[Step 2] : 创建目录 ➡️ 创建容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器
▼bash复制代码# 创建目录 mkdir -p /data/emqx/{etc,data,log} # 创建容器 docker run -d --name emqx -p 1883:1883 -p 18083:18083 emqx/emqx:latest # 拷贝文件 docker cp emqx:/opt/emqx/etc /data/emqx/ docker cp emqx:/opt/emqx/data /data/emqx/ # 授权文件 chmod -R 777 /data/emqx/{data,etc,log} # 删除容器 docker rm -f emqx
[Step 3] : 启动 EMQX 容器
▼bash复制代码docker run -d --name emqx \ -p 1883:1883 -p 8883:8883 -p 28083:8083 -p 8084:8084 -p 18081:8081 -p 18083:18083 \ -e TZ=Asia/Shanghai \ -v /data/emqx/etc:/opt/emqx/etc \ -v /data/emqx/data:/opt/emqx/data \ -v /data/emqx/log:/opt/emqx/log emqx/emqx:latest
[Step 4] : 查看启动日志

[Step 5] : 访问 EMQX 控制台 - 默认账号密码 admin / public

[Step 6] : 修改 EMQX 登录密码

[Step 7] : 成功访问 EMQX 控制台
Windows本地部署中间件
敬请期待 ....
