前言
在搭建分布式系统时,MySQL、Redis 和 RocketMQ 是常用的基础服务。每个服务各自的功能不同,但它们在数据存储、缓存、消息队列等方面不可或缺。如果你是初学者,别担心,本文会一步步详细教你如何在服务器上通过 Docker 部署这些服务。
为什么使用 Docker?
-
统一部署环境
Docker 可以在不同的操作系统上提供一致的运行环境,避免因为环境差异导致的问题。 -
快速部署和管理
使用 Docker,只需配置简单的docker-compose.yml
文件,就能快速启动或停止服务。 -
轻松实现数据持久化
借助挂载功能,你可以把重要的数据保存到服务器磁盘,即使容器被销毁,数据依然安全。
开始之前的准备
在开始部署之前,我们需要完成以下准备工作:
-
购买服务器
如果还没有服务器,可以选择腾讯云、阿里云等平台购买一个服务器。服务器的推荐配置:- 操作系统:CentOS 7(或更高版本)
- CPU和内存:根据项目需求选择,一般 2 核 4GB 足够。
-
设置登录方式:密钥登录
密钥登录比密码登录更加安全且便捷,以下是具体操作:- 在本地生成公钥和私钥,私钥会保存在你的电脑上。
- 在云服务商的管理页面,上传公钥到服务器。
- 使用工具(如 Xshell)通过私钥登录服务器。
-
安装 Docker 和 Docker Compose
确保服务器上已经安装了 Docker 和 Docker Compose。它们是部署服务容器的核心工具。如果还没安装,可以参考之前的教程。
第一部分:部署前的准备工作
在正式部署 MySQL、Redis 和 RocketMQ 之前,我们需要完成一些准备工作,以确保后续操作顺利进行。以下是详细步骤和原因说明。
1. 购买服务器
操作步骤:
- 打开云服务提供商(例如腾讯云、阿里云)官网。
- 注册或登录你的账号。
- 按需选择服务器配置,例如:
- 操作系统:推荐 CentOS 7 或更高版本。
- 配置:2 核 4GB 内存即可满足初学者的需求,存储大小视项目需求选择。
- 支付完成后,记录服务器的 公网 IP 地址,稍后需要用到。
为什么需要服务器?
本地电脑虽然也能运行 Docker,但外部设备无法直接访问。而服务器提供公网 IP,能让其他设备通过网络访问我们的服务。
2. 配置密钥登录(推荐)
为了安全起见,我们使用 密钥对 登录服务器,而不是传统的用户名和密码方式。
操作步骤:
-
在本地生成密钥对:
- 打开命令行工具(Windows 用户可使用 Git Bash 或 PowerShell)。
- 输入以下命令生成密钥对:
ssh-keygen -t rsa -b 2048 -C "your_email@example.com"
- 按提示选择保存路径,默认会保存在
~/.ssh/id_rsa
。 - 密钥对生成后,会得到两个文件:
id_rsa
:这是私钥,请保存在本地,不能泄露。id_rsa.pub
:这是公钥,用于上传到服务器。
-
将公钥上传到云服务商:
- 在云服务商管理控制台找到密钥管理或安全组设置。
- 将
id_rsa.pub
文件内容复制并上传。 - 保存设置。
-
使用密钥登录服务器:
- 打开 Xshell 或类似的远程连接工具。
- 新建会话,输入服务器的公网 IP。
- 登录方式选择“密钥”,导入生成的私钥
id_rsa
。 - 点击连接,成功后即可进入服务器。
为什么使用密钥登录?
密钥登录比用户名密码更安全,因为即使别人知道你的用户名,也无法登录服务器,没有私钥就没法通过验证。
3. 安装 Docker 和 Docker Compose
我们使用 Docker 来运行服务容器,Docker Compose 用于批量管理多个容器。
操作步骤:
-
安装 Docker:
- 运行以下命令安装 Docker:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce
- 启动 Docker 服务并设置开机自启:
service docker start chkconfig docker on
- 运行以下命令安装 Docker:
-
测试 Docker 是否安装成功:
- 执行以下命令,查看 Docker 版本信息:
docker version
- 如果显示 Docker 的客户端和服务端信息,则说明安装成功。
- 执行以下命令,查看 Docker 版本信息:
-
安装 Docker Compose:
- 下载 Docker Compose 二进制文件:
curl -L "https://github.com/docker/compose/releases/download/2.12.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/doc
- 下载 Docker Compose 二进制文件: