本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

由 MariaDB 基金会、MariaDB 公司 维护,社区贡献见 GitHub 仓库。
docker+mariadb)以下标签按版本分组,对应 Dockerfile 源码链接:
12.1.x 候选版本(RC)
12.1.1-ubi10-rc、12.1-ubi10-rc、12.1.1-ubi-rc、12.1-ubi-rc
Dockerfile
12.1.x 候选版本(基于 Ubuntu Noble)
12.1.1-noble-rc、12.1-noble-rc、12.1.1-rc、12.1-rc
Dockerfile
12.0.x 稳定版(基于 UBI)
12.0.2-ubi10、12.0-ubi10、12-ubi10、12.0.2-ubi、12.0-ubi、12-ubi
Dockerfile
12.0.x 稳定版(默认标签)
12.0.2-noble、12.0-noble、12-noble、noble、12.0.2、12.0、12、latest
Dockerfile
11.8.x LTS 版(基于 UBI)
11.8.3-ubi9、11.8-ubi9、11-ubi9、lts-ubi9、11.8.3-ubi、11.8-ubi、11-ubi、lts-ubi
Dockerfile
11.8.x LTS 版(默认 LTS 标签)
11.8.3-noble、11.8-noble、11-noble、lts-noble、11.8.3、11.8、11、lts
Dockerfile
其他版本(11.4.x、10.11.x、10.6.x 等)
标签及 Dockerfile 见 MariaDB Docker 仓库。
amd64、arm64v8、ppc64le、s390x(架构镜像见 Docker Hub)。
docker-library/docs mariadb 目录(含历史记录)。
MariaDB 是全球广泛使用的数据库服务器,由 MySQL 原开发团队打造,保证开源。知名用户包括***、星展银行、ServiceNow 等。其目标是与 MySQL 高度兼容,确保库二进制等效性及 API/命令完全匹配,同时持续开发新功能并优化性能。
!MariaDB 标志
镜像标签说明:latest 为最新稳定版,lts 为长期支持版。
默认容器内数据库监听 3306 端口,可通过 -p 映射到主机:
$ docker run --name some-mariadb -p 3306:3306 mariadb:latest
启动容器需设置 root 用户密码,支持以下三种方式:
$ docker run --detach --name some-mariadb --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest
$ docker run --detach --name some-mariadb --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 mariadb:latest
$ docker run --detach --name some-mariadb --env MARIADB_RANDOM_ROOT_PASSWORD=1 mariadb:latest
示例 compose.yaml:
# 用户/密码:root/example services: db: image: mariadb restart: always environment: MARIADB_ROOT_PASSWORD: example adminer: # 数据库管理工具 image: adminer restart: always ports: - 8080:8080 # 访问 [***] 管理数据库
启动:docker compose up,等待初始化完成后访问上述地址。
启动时指定普通用户、密码和数据库:
$ docker run --detach --name some-mariadb \ --env MARIADB_USER=example-user \ --env MARIADB_PASSWORD=my_cool_secret \ --env MARIADB_DATABASE=example-database \ --env MARIADB_ROOT_PASSWORD=my-secret-pw \ mariadb:latest
应用需与 MariaDB 在同一网络中通信:
# 创建网络 $ docker network create some-network # 启动 MariaDB(加入网络) $ docker run --detach --network some-network --name some-mariadb \ --env MARIADB_USER=example-user \ --env MARIADB_PASSWORD=my_cool_secret \ --env MARIADB_ROOT_PASSWORD=my-secret-pw \ mariadb:latest # 启动应用(同一网络,通过容器名访问 MariaDB) $ docker run --detach --network some-network --name some-application \ --env APP_DB_HOST=some-mariadb \ --env APP_DB_USER=example-user \ --env APP_DB_PASSWD=my_cool_secret \ some-application
在同一网络中启动临时容器,连接目标 MariaDB:
$ docker run -it --network some-network --rm mariadb \ mariadb -h some-mariadb -u example-user -p
(some-mariadb 为目标容器名,输入密码后进入 SQL 交互界面)。
连接非 Docker 或远程实例:
$ docker run -it --rm mariadb \ mariadb --host <服务器IP> --user example-user --password --database test
测试连接:输入 \s 查看服务器信息。
$ docker exec -it some-mariadb bash
使用与服务器版本匹配的容器执行备份工具:
$ docker run --volume /backup-volume:/backup --rm mariadb:10.6.15 \ mariadb-backup --help # 查看帮助
$ docker logs some-mariadb
配置文件需以 .cnf 结尾,挂载到容器 /etc/mysql/conf.d(只读)。文件格式示例:
[mariadb] max_connections = 1000 innodb_buffer_pool_size = 512M
默认配置已包含 Ubuntu MariaDB 变量,及容器优化:host-cache-size=0(禁用主机缓存)、skip-name-resolve(禁用域名解析)。如需启用域名解析,可设置 disable-skip-name-resolve。
查看最终配置:
$ docker run --name some-mariadb -v /my/custom:/etc/mysql/conf.d --rm mariadb:latest \ my_print_defaults --mysqld
可直接通过命令行参数传递配置(覆盖默认值),例如修改端口:
$ docker run --name some-mariadb -e MARIADB_ROOT_PASSWORD=my-secret-pw -d \ mariadb:latest --port 3808
查看所有可用参数:
$ docker run -it --rm mariadb:latest --verbose --help
首次启动且数据目录为空时,需设置以下必填环境变量之一(或其 _FILE 变体,从文件读取值):
MARIADB_ROOT_PASSWORD:设置 root 密码MARIADB_ALLOW_EMPTY_ROOT_PASSWORD:允许空 root 密码(设为 1)MARIADB_RANDOM_ROOT_PASSWORD:生成随机 root 密码(日志中输出)MARIADB_ROOT_PASSWORD_HASH:直接传入密码哈希其他可选变量(如 MARIADB_USER、MARIADB_DATABASE 等)及完整列表见 MariaDB 知识库。
注意:若数据目录已存在数据库,除 MARIADB_AUTO_UPGRADE(触发 mariadb-upgrade)外,其他初始化变量均无效。
敏感信息可通过 _FILE 后缀从文件读取(如 Docker Secrets):
$ docker run --name some-mariadb -e MARIADB_ROOT_PASSWORD_FILE=/run/secrets/mariadb-root -d \ mariadb:latest
首次启动时,容器会执行 /docker-entrypoint-initdb.d 目录下的 .sh、.sql、.sql.gz、.sql.xz、.sql.zst 文件(按字母顺序)。SQL 文件默认导入到 MARIADB_DATABASE 指定的数据库。
示例:挂载初始化脚本目录:
$ docker run --name some-mariadb -v /my/init-scripts:/docker-entrypoint-initdb.d -d mariadb:latest
推荐两种数据持久化方式:
/my/own/datadir),挂载到容器 /var/lib/mysql:
优点:主机可直接访问数据文件;需确保目录权限正确。$ docker run --name some-mariadb \ -v /my/own/datadir:/var/lib/mysql:Z \ # :Z 修复 SELinux 权限 -e MARIADB_ROOT_PASSWORD=my-secret-pw \ -d mariadb:latest
由 Docker 管理存储,无需关心主机路径:
$ docker volume create mariadb-data $ docker run --name some-mariadb -v mariadb-data:/var/lib/mysql -d mariadb:latest
首次启动时,数据库初始化期间容器不接受连接。自动化工具(如 docker compose)需注意等待初始化完成。
官方镜像未默认配置 HEALTHCHECK,可使用 healthcheck.sh 脚本自定义检查逻辑,详见 MariaDB 知识库。
若数据目录已存在数据库(含 mysql 子目录),初始化变量(除 MARIADB_AUTO_UPGRADE)均不生效,数据库结构保持不变。
详见 MariaDB 知识库:容器备份与恢复。
参考 FAQ:如何重置密码。
详见 添加插件到 Docker 镜像。
更多示例见 mariadb-docker 仓库 /examples 目录。
镜像中软件的许可信息见 MariaDB 许可 FAQ。镜像可能包含其他软件(如 Bash),其许可需用户自行确认合规性。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429