Bitnami Secure Image for MariaDB是一款针对MariaDB数据库开发的预配置安全镜像,它集成自动化安全补丁、合规性检查工具及加固配置,可快速在容器、虚拟机或云平台等环境中部署,提供持续更新与维护支持,有效降低部署风险,确保数据库运行的稳定性与安全性,满足企业级应用对数据保护的严格需求。
收藏数: 206
下载次数: 835986103
类型:
bitnami/mariadbMariaDB 是一款开源的社区开发 SQL 数据库服务器,因其企业级功能、灵活性以及与主流科技公司的合作,在全球范围内被广泛使用。
MariaDB 官方概述
商标说明:本软件清单由 Bitnami 打包。所提及的相关商标归各自公司所有,使用这些商标并不意味着任何关联或认可。
Bitnami MariaDB 镜像是经过安全加固的最小化漏洞(CVE)镜像,由 Bitnami 构建和维护。该镜像基于云优化、安全加固的企业级操作系统 Photon Linux 开发,核心优势包括:
每个镜像均附带安全元数据,可在 Bitnami 公共目录 中查看(部分数据需 Bitnami 商业订阅)。若需基于 Debian Linux 的旧版镜像,可参考 Bitnami Legacy 仓库。
以下命令适用于开发环境快速启动(生产环境请勿使用):
consoledocker run --name mariadb -e ALLOW_EMPTY_PASSWORD=yes bitnami/mariadb:latest
警告:上述快速启动仅用于开发环境。生产环境需修改默认不安全凭据,并参考下文「配置」章节进行安全部署。
通过 Helm 图表部署 Bitnami 应用是在 Kubernetes 上快速启动的推荐方式。具体安装步骤可参考 Bitnami MariaDB Chart GitHub 仓库。
非 root 容器镜像能增加一层安全防护,通常推荐用于生产环境。但由于运行时采用非 root 用户,特权操作通常受限。更多关于非 root 容器的信息可参考 Bitnami 文档。
Bitnami 镜像标签策略(滚动标签与固定标签的区别)可参考 官方文档。各标签的对应关系可查看分支目录下的 tags-info.yaml 文件(例如 bitnami/ASSET/BRANCH/DISTRO/tags-info.yaml)。
可通过关注 bitnami/containers GitHub 仓库 获取项目更新。
consoledocker pull bitnami/mariadb:latest # 拉取最新版
如需指定版本,可使用标签拉取(可用版本列表):
consoledocker pull bitnami/mariadb:[TAG] # 将 [TAG] 替换为具体版本,如 11.4.2
若需自定义构建,可克隆仓库并执行 docker build:
consolegit clone [***] bitnami/APP/VERSION/OPERATING-SYSTEM # 替换 APP、VERSION、操作系统路径占位符 docker build -t bitnami/APP:latest .
若直接删除容器,所有数据将丢失。为避免数据丢失,需挂载持久化卷至容器内 /bitnami/mariadb 路径(首次运行时,空挂载目录会自动初始化)。
consoledocker run \ -e ALLOW_EMPTY_PASSWORD=yes \ -v /本地路径/mariadb-persistence:/bitnami/mariadb \ # 替换为本地实际路径 bitnami/mariadb:latest
修改项目的 docker-compose.yml 文件,添加卷挂载配置:
yamlservices: mariadb: ... volumes: - /本地路径/mariadb-persistence:/bitnami/mariadb # 替换为本地实际路径 ...
注意:由于镜像为非 root 容器,挂载的文件和目录需确保 UID
1001有读写权限。
通过 Docker 容器网络,MariaDB 容器可被其他应用容器访问,同一网络内的容器可通过容器名作为主机名通信。
consoledocker network create app-tier --driver bridge
通过 --network app-tier 将容器加入网络:
consoledocker run -d --name mariadb-server \ -e ALLOW_EMPTY_PASSWORD=yes \ --network app-tier \ bitnami/mariadb:latest
启动客户端容器,通过网络连接服务端:
consoledocker run -it --rm \ --network app-tier \ bitnami/mariadb:latest mysql -h mariadb-server -u root
Docker Compose 会自动创建网络并将服务加入其中。以下示例中,myapp 服务需连接 MariaDB:
yamlversion: '2' networks: app-tier: driver: bridge services: mariadb: image: bitnami/mariadb:latest environment: - ALLOW_EMPTY_PASSWORD=yes networks: - app-tier myapp: image: YOUR_APPLICATION_IMAGE # 替换为实际应用镜像 networks: - app-tier
重要:
- 需将
YOUR_APPLICATION_IMAGE替换为实际应用镜像;- 应用容器中通过主机名
mariadb连接 MariaDB 服务端。
启动容器:
consoledocker-compose up -d
| 变量名 | 描述 | 默认值 |
|---|---|---|
ALLOW_EMPTY_PASSWORD | 是否允许无密码访问 MariaDB | no |
MARIADB_AUTHENTICATION_PLUGIN | 首次初始化时配置的认证插件(如 mysql_native_password) | 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_REPLICATION_USER | 复制用户名称 | nil |
MARIADB_REPLICATION_PASSWORD | 复制用户密码 | nil |
MARIADB_PORT_NUMBER | MariaDB 服务端口 | nil |
MARIADB_CHARACTER_SET | 默认字符集 | utf8 |
MARIADB_COLLATE | 默认排序规则 | utf8_general_ci |
| 变量名 | 描述 | 值 |
|---|---|---|
DB_FLAVOR | 数据库类型(固定为 MariaDB) | mariadb |
DB_DATA_DIR | 数据文件存储路径 | ${DB_VOLUME_DIR}/data |
DB_CONF_FILE | 主配置文件路径 | ${DB_CONF_DIR}/my.cnf |
MARIADB_DEFAULT_PORT_NUMBER | 默认端口 | 3306 |
容器首次启动时,会自动执行 /docker-entrypoint-startdb.d 目录下扩展名为 .sh、.sql 或 .sql.gz 的文件。可通过挂载卷将自定义脚本放入该目录,实现初始化逻辑(如创建表、插入数据)。
说明:
.sh脚本会在所有节点执行,.sql和.sql.gz仅在主节点执行(主从复制场景)。导入大型数据库时,建议使用.sql格式(.sql.gz需实时解压,可能影响性能)。
通过 MARIADB_EXTRA_FLAGS 环境变量可传递额外启动参数(如连接数限制):
consoledocker run --name mariadb \ -e ALLOW_EMPTY_PASSWORD=yes \ -e MARIADB_EXTRA_FLAGS='--max-connections=155 --max-connect-errors=1000' \ bitnami/mariadb:latest
通过 MARIADB_ROOT_PASSWORD 环境变量设置 root 用户密码(生产环境必须配置):
consoledocker run --name mariadb \ -e MARIADB_ROOT_PASSWORD=your_secure_password \ # 替换为安全密码 bitnami/mariadb:latest
开发环境可通过 ALLOW_EMPTY_PASSWORD=yes 跳过密码配置(生产环境禁止):
consoledocker run --name mariadb -e ALLOW_EMPTY_PASSWORD=yes bitnami/mariadb:latest
通过 MARIADB_DATABASE 环境变量指定初始化数据库名称:
consoledocker run --name mariadb \ -e ALLOW_EMPTY_PASSWORD=yes \ -e MARIADB_DATABASE=my_app_db \ # 数据库名称 bitnami/mariadb:latest
通过 MARIADB_USER 和 MARIADB_PASSWORD 创建受限用户(仅有权限访问 MARIADB_DATABASE 指定的数据库):
consoledocker run --name mariadb \ -e ALLOW_EMPTY_PASSWORD=yes \ -e MARIADB_USER=app_user \ # 用户名 -e MARIADB_PASSWORD=user_pwd \ # 用户密码 -e MARIADB_DATABASE=my_app_db \ # 关联数据库 bitnami/mariadb:latest
注意:若启用
ALLOW_EMPTY_PASSWORD,root 用户将允许远程无密码访问。生产环境需通过MARIADB_ROOT_PASSWORD设置 root 密码。
通过以下环境变量自定义数据库默认字符集和排序规则:
MARIADB_CHARACTER_SET:字符集(默认 utf8)MARIADB_COLLATE:排序规则(默认 utf8_general_ci)示例:
consoledocker run --name mariadb \ -e ALLOW_EMPTY_PASSWORD=yes \ -e MARIADB_CHARACTER_SET=utf8mb4 \ -e MARIADB_COLLATE=utf8mb4_unicode_ci \ bitnami/mariadb:latest
以下是 bitnami/mariadb 相关的常用 Docker 镜像,适用于 关系型数据库、MySQL 兼容、高性能 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务