mariadb-galera

revolyram/mariadb-galera Docker 镜像

基于MariaDB 10.5的Docker镜像,专为Docker Swarm环境设计,集成Galera同步多主复制技术,提供高可用性、数据一致性的数据库集群部署方案。

1 次收藏下载次数: 0状态:社区镜像维护者:revolyram仓库类型:镜像最近更新:
下载命令
点击查看

colinmollenhour/mariadb-galera-swarm 镜像文档

概述

colinmollenhour/mariadb-galera-swarm是一个基于MariaDB 10.5版本的Docker镜像,专为Docker Swarm容器编排环境设计。该镜像集成Galera Cluster同步多主复制技术,支持在Docker Swarm集群中快速部署高可用、数据实时同步的MariaDB数据库集群,适用于需要高可靠性和数据一致性的生产环境。

核心功能与特性

  • Galera同步多主复制:实现多节点间数据实时同步,支持任意节点读写,无单点故障风险
  • Docker Swarm原生支持:针对Swarm编排优化,支持服务发现、动态扩缩容和自动故障转移
  • MariaDB 10.5基础:包含MariaDB 10.5的全部功能,如InnoDB存储引擎、增强的安全特性和性能优化
  • 自动集群配置:简化集群初始化流程,支持节点自动加入和集群状态维护
  • 数据持久化:支持卷挂载实现数据持久化存储,确保容器重启后数据不丢失

使用场景

  • 生产环境中需要高可用性的数据库服务
  • 分布式应用架构的数据存储层
  • 需要多节点数据同步的业务系统
  • Docker Swarm环境下的数据库集群部署
  • 对数据一致性和服务可用性要求较高的企业级应用

使用方法

快速启动(单节点测试)

bash
docker run -d \
  --name mariadb-galera \
  -e MYSQL_ROOT_PASSWORD=your_root_password \
  -e GALERA_CLUSTER_ADDRESS=gcomm:// \
  -p 3306:3306 \
  docker.xuanyuan.run/colinmollenhour/mariadb-galera-swarm:latest

Docker Swarm集群部署(推荐)

1. 创建Overlay网络

bash
docker network create --driver overlay galera_network

2. 部署Stack(docker-compose.yml)

yaml
version: '3.8'

services:
  galera:
    image: docker.xuanyuan.run/colinmollenhour/mariadb-galera-swarm:latest
    deploy:
      replicas: 3
      placement:
        constraints: [node.role == worker]
    environment:
      - MYSQL_ROOT_PASSWORD=your_secure_password
      - GALERA_CLUSTER_ADDRESS=gcomm://tasks.galera
      - NODE_NAME={{.Service.Name}}-{{.Task.Slot}}
      - MYSQL_DATABASE=app_db
      - MYSQL_USER=app_user
      - MYSQL_PASSWORD=app_password
    volumes:
      - galera_data:/var/lib/mysql
    networks:
      - galera_network
    ports:
      - "3306:3306"

networks:
  galera_network:
    external: true

volumes:
  galera_data:

3. 部署Stack

bash
docker stack deploy -c docker-compose.yml galera-cluster

环境变量配置

环境变量描述示例必要性
MYSQL_ROOT_PASSWORDroot用户密码secure_password123必需
GALERA_CLUSTER_ADDRESSGalera集群地址,Swarm环境下使用gcomm://tasks.<service_name>gcomm://tasks.galera必需
NODE_NAME节点名称,建议使用Swarm任务变量{{.Service.Name}}-{{.Task.Slot}}推荐
MYSQL_DATABASE初始化时创建的数据库app_db可选
MYSQL_USER初始化时创建的数据库用户app_user可选
MYSQL_PASSWORD数据库用户密码user_password可选
GALERA_SST_METHODSST(状态快照传输)方法rsync或xtrabackup可选,默认rsync
GALERA_WSREP_PROVIDER_OPTIONSGalera提供器选项gcache.size=1G可选

集群维护

  • 查看集群状态:

    bash
    docker exec -it <container_id> mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
    
  • 添加新节点:直接调整Swarm服务副本数,新节点会自动加入集群

    bash
    docker service scale galera-cluster_galera=4
    
  • 数据备份:

    bash
    docker exec -it <container_id> mysqldump -uroot -p --all-databases > backup.sql
    

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 mariadb-galera 镜像标签

docker pull docker.xuanyuan.run/revolyram/mariadb-galera:<标签>

DockerHub 原生拉取命令

docker pull revolyram/mariadb-galera:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告