
pukoren/mariadb-galera基于Withblue.ink的实用主题构建,为Docker Cloud打造的可集群、自动发现的MariaDB Galera集群。
本项目旨在创建易于部署的MariaDB集群,可动态扩展且无需复杂配置。通过HOSTNAME(或Docker Cloud上的DOCKERCLOUD_CONTAINER_HOSTNAME)环境变量自动发现其他节点(如mariadb-1、mariadb-2、mariadb-3等),命名为{name}-1的容器将作为Galera集群创建者。该容器可直接用于Docker Cloud环境。
ymlmariadb-production: environment: - MYSQL_ROOT_PASSWORD=password # 集群root密码 image: 'pukoren/mariadb-galera:latest' ports: - '3306:3306' # 映射数据库端口 volumes: - '/data/mysql:/data' # 持久化数据存储
部署后,通过扩展容器数量即可自动扩展集群。
sh# 创建网络 docker network create --driver bridge galera # 启动第一个节点(集群创建者) docker run -it -e MYSQL_ROOT_PASSWORD=root --name=mariadb-1 -e HOSTNAME=mariadb-1 --rm --network galera -p 3306:3306 pukoren/mariadb-galera:latest # 启动第二个节点(自动加入集群) docker run -it -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name=mariadb-2 -e HOSTNAME=mariadb-2 --rm --network galera --link mariadb-1:mariadb-1 pukoren/mariadb-galera:latest
| 名称 | 示例值 | 描述 |
|---|---|---|
| HOSTNAME | mariadb-1 | 容器主机名,命名为{name}-1的容器将作为Galera集群主节点 |
| MYSQL_ROOT_PASSWORD | pass | 集群root用户密码 |
| MYSQL_ALLOW_EMPTY_PASSWORD | anything | 允许空root密码 |
| MYSQL_RANDOM_ROOT_PASSWORD | anything | 生成随机root密码 |
| MYSQL_DATABASE | anything | 首次启动时创建的数据库名称 |
| MYSQL_USER | username | 首次启动时创建的用户名,需同时提供MYSQL_PASSWORD;若指定MYSQL_DATABASE,将授予该数据库访问权限 |
| MARIADB_DEFAULT_STORAGE_ENGINE | InnoDB | 节点默认存储引擎 |
| GALERA_SLAVE_THREADS | 1 | 启动的从线程数量,详见文档 |
| MARIADB_INNODB_BUFFER_POOL_SIZE | 134217728 | InnoDB缓冲池大小(字节),详见文档 |
| MARIADB_INNODB_BUFFER_POOL_INSTANCES | 1 | InnoDB缓冲池实例数量,详见文档,每个实例大小至少为1GB(基于POOL_SIZE) |
切勿关闭整个集群——否则节点可能无法恢复。若必须关闭整个集群并稍后重启,需删除第一个容器({name}-1)共享卷中的clustered文件。
始终采用滚动部署流程,避免更新时集群关闭。
创建位于反向代理后的MariaDB Galera集群,实现负载均衡并基于源IP地址过滤入站请求:
ymlmariadb-production: environment: - 'EXCLUDE_PORTS=4567,4568,4444' # 排除的端口 - 'EXTRA_SETTINGS=acl network_allowed src 192.168.1.0,block if !network_allowed' # IP过滤规则 - MYSQL_ROOT_PASSWORD=password # 集群root密码 - TCP_PORTS=3306 # 开放的TCP端口 image: 'pukoren/mariadb-galera:latest' sequential_deployment: true # 启用顺序部署 volumes: - '/data/mysql:/data' # 数据持久化 mariadb-production-lb: environment: - 'STATS_AUTH=user:pass' # 统计页面认证信息 - STATS_PORT=1936 # 统计页面端口 image: 'dockercloud/haproxy:latest' # HAProxy镜像 links: - mariadb-production # 链接到MariaDB集群 ports: - '1936:1936' # 统计页面端口映射 - '3306:3306' # 数据库端口映射 roles: - global # 全局角色

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务