bitnami/mariadb-galera Docker Image
Bitnami安全镜像,用于部署高可用MariaDB Galera集群,具备安全加固特性。
Bitnami MariaDB Galera 镜像文档
镜像概述和主要用途
MariaDB Galera 是一个多主数据库集群解决方案,提供同步复制和高可用性。Bitnami MariaDB Galera 镜像是由 Bitnami 打包的容器化版本,旨在简化 MariaDB Galera 集群的部署和管理,适用于开发、测试及生产环境(注:生产环境建议使用 Bitnami Secure Images)。
https://mariadb.com/kb/en/library/galera-cluster/
商标说明:本软件列表由 Bitnami 打包,所提及的商标分属各自公司所有,使用这些商标并不意味着任何关联或背书。
核心功能和特性
- 多主架构:支持多个主节点,任何节点均可读写,提高系统可用性和负载均衡能力
- 同步复制:集群节点间数据实时同步,确保数据一致性
- 自动故障转移:节点故障时自动检测并恢复,无需手动干预
- 安全加固:遵循 Bitnami Secure Images 标准,采用最小化操作系统(Photon Linux),减少***面
- 非 root 容器:以非特权用户运行,增强容器安全性
- 灵活配置:通过环境变量自定义数据库参数、集群配置及访问控制
- 数据持久化:支持卷挂载,确保容器重启后数据不丢失
- 标准化部署:与 Bitnami 虚拟机、云镜像使用相同组件和配置方式,便于跨环境迁移
使用场景和适用范围
- 高可用性数据库需求:需要避免单点故障的业务系统
- 分布式数据同步:多区域部署时需保持数据实时一致的场景
- 开发/测试环境:快速搭建 MariaDB Galera 集群进行功能验证和性能测试
- 中小规模生产环境:需简化集群管理的应用(生产环境建议使用 Bitnami Secure Images,获取长期支持和安全更新)
详细使用方法和配置说明
快速启动(TL;DR)
consoledocker run --name mariadb-galera \ -e ALLOW_EMPTY_PASSWORD=yes \ docker.xuanyuan.run/bitnami/mariadb-galera:latest
警告:以上快速启动仅适用于开发环境。生产环境中应修改默认凭证,并参考 配置 部分进行安全部署。
⚠️ 重要通知:Bitnami 镜像目录即将变更
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,通过新的 https://news.broadcom.com/app-dev/broadcom-introduces-bitnami-secure-images-for-production-ready-containerized-applications 提供精选的安全加固镜像:
- 首次向社区用户开放流行容器镜像的安全优化版本
- Bitnami 将逐步弃用免费层中非加固的 Debian 基础镜像,并从公共目录中移除非最新标签。社区用户将只能访问数量减少的加固镜像,且仅发布 "latest" 标签,适用于开发目的
- 2025 年 8 月 28 日起,两周内所有现有容器镜像(包括旧版本标签,如 2.50.0、10.6)将从公共目录(docker.io/bitnami)迁移至 "Bitnami Legacy" 仓库(docker.io/bitnamilegacy),且不再接收更新
- 对于生产工作负载和长期支持,建议采用 Bitnami Secure Images,包含加固容器、更小***面、CVE 透明度(通过 VEX/KEV)、SBOM 及企业支持
这些变更旨在通过推广软件供应链完整性最佳实践和最新部署,提升所有 Bitnami 用户的安全态势。更多详情参见 https://github.com/bitnami/containers/issues/83267。
为什么使用 Bitnami Secure Images
- 安全加固与企业就绪:Bitnami Secure Images 和 Helm 图表旨在使开源软件更安全、更适合企业环境
- 漏洞透明管理:通过行业标准漏洞可利用性交换(VEX)、KEV 和 EPSS 评分,更快分类安全漏洞并透明呈现 CVE 风险
- 最小化操作系统:基于 Photon Linux 构建,减少***面的同时通过标准包格式保持可扩展性
- 持续更新:上游补丁发布后数小时内更新镜像,确保安全性和合规性
- 跨格式一致性:容器、虚拟机和云镜像使用相同组件和配置方式,便于根据项目需求切换格式
- 安全元数据:加固镜像附带签名证明(Notation)、SBOM、病毒扫描报告等 SLSA-3 合规元数据
在 Kubernetes 中部署
使用 Helm Chart 是在 Kubernetes 上部署 Bitnami 应用的最简单方式。详见 https://github.com/bitnami/charts/tree/master/bitnami/mariadb-galera。
为什么使用非 root 容器
非 root 容器镜像增加了额外安全层,通常推荐用于生产环境。但由于以非 root 用户运行,特权操作通常受限。更多信息参见 https://techdocs.broadcom.com/us/en/vmware-tanzu/application-catalog/tanzu-application-catalog/services/tac-doc/apps-tutorials-work-with-non-root-containers-index.html。
支持的标签及 Dockerfile 链接
注意:Debian 9 和 Oracle Linux 7 基础镜像已弃用,Bitnami 不再发布基于这些系统的新 Docker 镜像。
Bitnami 标签策略及滚动标签与固定标签的区别详见 https://techdocs.broadcom.com/us/en/vmware-tanzu/application-catalog/tanzu-application-catalog/services/tac-doc/apps-tutorials-understand-rolling-tags-containers-index.html。各标签对应关系可查看分支文件夹中的 tags-info.yaml 文件(如 bitnami/ASSET/BRANCH/DISTRO/tags-info.yaml)。
可通过关注 https://github.com/bitnami/containers 获取项目更新。
获取镜像
推荐从 https://hub.docker.com/r/bitnami/mariadb-galera 拉取预构建镜像:
consoledocker pull docker.xuanyuan.run/bitnami/mariadb-galera:latest
如需指定版本,可拉取带版本标签的镜像。https://hub.docker.com/r/bitnami/mariadb-galera/tags/ 参见 Docker Hub。
consoledocker pull docker.xuanyuan.run/bitnami/mariadb-galera:[TAG]
也可手动构建镜像:
consolegit clone https://github.com/bitnami/containers.git cd bitnami/APP/VERSION/OPERATING-SYSTEM # 替换 APP、VERSION、OPERATING-SYSTEM 为实际值 docker build -t bitnami/APP:latest .
数据持久化
若删除容器,所有数据将丢失。为避免数据丢失,需挂载持久化卷至 /bitnami/mariadb 路径。挂载空目录时,首次运行会自动初始化数据。
Docker 命令行
consoledocker run \ -e ALLOW_EMPTY_PASSWORD=yes \ -v /path/to/mariadb-persistence:/bitnami/mariadb \ docker.xuanyuan.run/bitnami/mariadb-galera:latest
Docker Compose
修改仓库中的 https://github.com/bitnami/containers/blob/main/bitnami/mariadb-galera/docker-compose.yml:
yamlservices: mariadb: ... volumes: - /path/to/mariadb-persistence:/bitnami/mariadb ...
连接其他容器
通过 https://docs.docker.com/engine/userguide/networking/,容器内的 MariaDB 服务可被其他应用容器访问,同一网络中的容器可通过容器名作为主机名通信。
使用命令行
步骤 1:创建网络
consoledocker network create app-tier --driver bridge
步骤 2:启动 MariaDB Galera 服务
consoledocker run -d --name mariadb-galera \ -e ALLOW_EMPTY_PASSWORD=yes \ --network app-tier \ docker.xuanyuan.run/bitnami/mariadb-galera:latest
步骤 3:启动客户端容器
consoledocker run -it --rm \ --network app-tier \ docker.xuanyuan.run/bitnami/mariadb-galera:latest mysql -h mariadb-galera -u root
使用 Docker Compose
以下示例定义 app-tier 桥接网络,假设应用服务名为 myapp:
yamlversion: '2' networks: app-tier: driver: bridge services: mariadb-galera: image: docker.xuanyuan.run/bitnami/mariadb-galera:latest environment: - ALLOW_EMPTY_PASSWORD=yes networks: - app-tier myapp: image: docker.xuanyuan.run/YOUR_APPLICATION_IMAGE # 替换为实际应用镜像 networks: - app-tier
重要:
- 需将
YOUR_APPLICATION_IMAGE替换为实际应用镜像- 应用容器中使用主机名
mariadb-galera连接数据库
启动容器:
consoledocker-compose up -d
配置说明
环境变量
可自定义环境变量
| 变量名 | 描述 | 默认值 |
|---|---|---|
ALLOW_EMPTY_PASSWORD | 允许空密码访问 MariaDB Galera | no |
MARIADB_AUTHENTICATION_PLUGIN | 首次初始化时配置的认证插件 | nil |
MARIADB_ROOT_USER | 数据库 root 用户 | root |
MARIADB_ROOT_PASSWORD | root 用户密码 | nil |
MARIADB_USER | 首次初始化时创建的数据库用户 | nil |
MARIADB_PASSWORD | 自定义数据库用户密码 | nil |
MARIADB_DATABASE | 首次初始化时创建的数据库 | nil |
MARIADB_MASTER_HOST | 主节点地址 | nil |
MARIADB_MASTER_PORT_NUMBER | 主节点端口 | 3306 |
MARIADB_MASTER_ROOT_USER | 主节点 root 用户 | root |
MARIADB_MASTER_ROOT_PASSWORD | 主节点 root 用户密码 | nil |
MARIADB_MASTER_DELAY | 复制延迟(秒) | 0 |
MARIADB_REPLICATION_USER | 复制用户 | monitor |
MARIADB_REPLICATION_PASSWORD | 复制用户密码 | monitor |
MARIADB_PORT_NUMBER | 数据库服务端口 | nil |
MARIADB_REPLICATION_MODE | 复制模式 | nil |
MARIADB_REPLICATION_SLAVE_DUMP | 是否从主节点 dump 数据并更新从节点 | false |
MARIADB_EXTRA_FLAGS | 启动数据库时附加的参数 | nil |
MARIADB_INIT_SLEEP_TIME | 初始化配置操作等待睡眠时间(秒) | nil |
MARIADB_CHARACTER_SET | 字符集 | nil |
MARIADB_COLLATE | 排序规则 | nil |
MARIADB_BIND_ADDRESS | 绑定地址 | nil |
MARIADB_SQL_MODE | 启用的 SQL 模式 | nil |
MARIADB_UPGRADE | 升级选项 | AUTO |
MARIADB_SKIP_TEST_DB | 是否跳过创建 test 数据库 | no |
MARIADB_CLIENT_ENABLE_SSL | 是否强制客户端 SSL 连接 | no |
MARIADB_CLIENT_SSL_CA_FILE | 客户端 SSL CA 证书路径 | nil |
MARIADB_CLIENT_SSL_CERT_FILE | 客户端 SSL 证书路径 | nil |
MARIADB_CLIENT_SSL_KEY_FILE | 客户端 SSL 密钥路径 | nil |
MARIADB_CLIENT_EXTRA_FLAGS | mysql 客户端附加参数(用于依赖 CLI 的应用) | no |
MARIADB_STARTUP_WAIT_RETRIES | 数据库启动等待重试次数 | 300 |
MARIADB_STARTUP_WAIT_SLEEP_TIME | 重试间隔(秒) | 2 |
MARIADB_ENABLE_SLOW_QUERY | 是否启用慢查询日志 | 0 |
MARIADB_LONG_QUERY_TIME | 慢查询阈值(秒) | 10.0 |
MARIADB_GALERA_DEFAULT_NODE_NAME | 节点默认逻辑名称 | nil |
MARIADB_GALERA_DEFAULT_NODE_ADDRESS | 节点默认报告地址 | nil |
MARIADB_GALERA_DEFAULT_MARIABACKUP_PASSWORD | mariabackup 工具默认密码(用于 SST) | nil |
MARIADB_GALERA_CONF_DIR | 配置目录 | /opt/bitnami/mariadb/conf |
MARIADB_GALERA_MOUNTED_CONF_DIR | 自定义配置覆盖目录 | /bitnami/conf |
MARIADB_GALERA_FORCE_SAFETOBOOTSTRAP | 是否强制引导(即使节点标记为不安全) | nil |
MARIADB_GALERA_CLUSTER_BOOTSTRAP | 是否作为集群引导节点 | nil |
MARIADB_GALERA_CLUSTER_ADDRESS | 集群地址 | nil |
MARIADB_GALERA_CLUSTER_NAME | 集群名称 | $DB_GALERA_DEFAULT_CLUSTER_NAME |
MARIADB_GALERA_NODE_NAME | 节点逻辑名称(默认主机名) | nil |
MARIADB_GALERA_NODE_ADDRESS | 节点报告地址(默认 IP) | nil |
MARIADB_GALERA_SST_METHOD | 状态快照传输(SST)方法 | $DB_GALERA_DEFAULT_SST_METHOD |
MARIADB_GALERA_MARIABACKUP_USER | mariabackup 工具用户(用于 SST) | $DB_GALERA_DEFAULT_MARIABACKUP_USER |
MARIADB_GALERA_MARIABACKUP_PASSWORD | mariabackup 工具密码(用于 SST) | $DB_GALERA_DEFAULT_MARIABACKUP_PASSWORD |
MARIADB_ENABLE_LDAP | 是否启用 LDAP 认证 | no |
MARIADB_ENABLE_TLS | 是否启用 SSL/TLS | no |
MARIADB_TLS_CERT_FILE | SSL/TLS 证书路径 | nil |
MARIADB_TLS_KEY_FILE | SSL/TLS 密钥路径 | nil |
MARIADB_TLS_CA_FILE | SSL/TLS CA 证书路径 | nil |
只读环境变量
| 变量名 | 描述 | 值 |
|---|---|---|
DB_FLAVOR | 数据库类型(有效值:mariadb 或 mysql) | mariadb |
DB_BASE_DIR | 基础目录 | ${BITNAMI_ROOT_DIR}/mariadb |
DB_VOLUME_DIR | 持久化文件目录 | ${BITNAMI_VOLUME_DIR}/mariadb |
DB_DATA_DIR | 数据文件目录 | ${DB_VOLUME_DIR}/data |
DB_BIN_DIR | 可执行文件目录 | ${DB_BASE_DIR}/bin |
DB_SBIN_DIR | 服务二进制文件目录 | ${DB_BASE_DIR}/sbin |
DB_CONF_DIR | 配置目录 | ${DB_BASE_DIR}/conf |
DB_DEFAULT_CONF_DIR | 默认配置目录 | ${DB_BASE_DIR}/conf.default |
DB_LOGS_DIR | 日志目录 | ${DB_BASE_DIR}/logs |
DB_TMP_DIR | 临时文件目录 | ${DB_BASE_DIR}/tmp |
DB_CONF_FILE | 主 |
bitnami/mariadb-galera Related Documentation
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 mariadb-galera 镜像标签
DockerHub 原生拉取命令
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务
