欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用 Docker 实现 MySQL 循环复制 (I)

最编程 2024-07-19 20:30:55
...

目录

  • 1. 实验内容
  • 2. 实验环境
  • 3. 安装 Docker 引擎
  • 4. 启动 Docker,检查 docker 服务状态
  • 5. 配置 Docker 镜像加速


1. 实验内容

复制是 MySQL 的一项非常重要的技术,它使服务器能够将更改从一个实例复制到另一个实例,复制技术被广泛应用在水平横向扩展、商业智能和分析、地理数据分布、高可用性与容灾等关键性场景中。
典型的复制拓扑是主/从属服务器的一对多关系,高级复杂复制拓扑有双向复制、循环复制以及多源复制等。本节实验涵盖了在三个独立节点上构建循环复制拓扑的技术内容

本次实验将在一台虚拟机中使用 Docker 容器构建三个 MySQL 循环复制拓扑。


2. 实验环境

准备一台虚拟机。内存大小和处理器核数可以适当减小或增大。

在这里插入图片描述

IP配置为192.168.30.128/24

在这里插入图片描述


3. 安装 Docker 引擎

yum install -y yum-utils device-mapper-persistent-data lvm2
  • 其中,yum-utils 包用来添加和管理 yum 源,device-mapper-persistent-data 和 lvm2 是储存设备映射 (devicemapper) 必须的两个软件包。

在这里插入图片描述在这里插入图片描述

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
  • 添加阿里云 Docker 软件仓库。

在这里插入图片描述

yum repolist
  • 验证仓库源已经添加

在这里插入图片描述

yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 安装 Docker 软件包。
    • docker-ce 是 Docker 的社区版本,提供了构建、发布和运行容器的工具和服务
    • docker-ce-cli 是 Docker 社区版的命令行工具,用来和 Docker 守护进程进行交互
    • containerd.io 是 Docker 运行时的核心组件,提供容器的生命周期、镜像、网络管理等功能
    • docker-compose-plugin 用于在单台主机上管理和编排多个容器的运行

在这里插入图片描述

在这里插入图片描述


4. 启动 Docker,检查 docker 服务状态

  systemctl start docker 
  • 启动docker 服务
systemctl enable docker
  • 设置docker服务在下一次系统启动时自动启动
systemctl status docker
  • 检查 docker 服务状态

在这里插入图片描述


5. 配置 Docker 镜像加速

在某些地区或网络环境下,直接从官方 Docker Hub 下载镜像可能会出现速度慢、不稳定甚至无法连接等问题。这时,通过设置镜像加速站点,可以利用第三方提供的高速镜像服务来解决这些问题

sudo mkdir -p /etc/docker
  • 创建/etc/docker目录,用于存放 Docker 守护进程的配置信息
  • sudo用于暂时提升用户权限
cat > /etc/docker/daemon.json <<"EOF"
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud",
        "https://noohub.ru"
    ]
}
EOF
  • 这里创建了一个名为 daemon.json 的文件,并将其放在 /etc/docker/ 目录下。这个文件包含了 Docker 守护进程的配置信息,其中包括一个名为 registry-mirrors 的数组,里面列出了多个镜像加速站点的 URL。这些 URL 是第三方镜像加速服务提供商提供的地址,如 DaoCloud、Huecker 和 TimeWeb 等。
    当 Docker 守护进程启动时,它会读取这个配置文件并根据其中的信息去访问镜像加速站点获取镜像。

在这里插入图片描述

systemctl daemon-reload
systemctl restart docker
systemctl status docker
  • 执行 systemctl daemon-reload 和 systemctl restart docker 命令应用更新并重启服务

在这里插入图片描述

docker info
  • 执行 docker info 命令检查有关Docker守护程序及其环境的信息。

在这里插入图片描述
在这里插入图片描述

推荐阅读