revolyram/mariadb-galera Docker 镜像
revolyram查看 Docker Hub 原文页
基于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环境下的数据库集群部署
- 对数据一致性和服务可用性要求较高的企业级应用
使用方法
快速启动(单节点测试)
bashdocker 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网络
bashdocker network create --driver overlay galera_network
2. 部署Stack(docker-compose.yml)
yamlversion: '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
bashdocker stack deploy -c docker-compose.yml galera-cluster
环境变量配置
| 环境变量 | 描述 | 示例 | 必要性 |
|---|---|---|---|
| MYSQL_ROOT_PASSWORD | root用户密码 | secure_password123 | 必需 |
| GALERA_CLUSTER_ADDRESS | Galera集群地址,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_METHOD | SST(状态快照传输)方法 | rsync或xtrabackup | 可选,默认rsync |
| GALERA_WSREP_PROVIDER_OPTIONS | Galera提供器选项 | gcache.size=1G | 可选 |
集群维护
-
查看集群状态:
bashdocker exec -it <container_id> mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'" -
添加新节点:直接调整Swarm服务副本数,新节点会自动加入集群
bashdocker service scale galera-cluster_galera=4 -
数据备份:
bashdocker 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:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务