注意:这是 mariadb 镜像 的 arm64v8 构建的"按架构"仓库——更多信息,请参见镜像文档中的"除 amd64 外的架构?"Architectures other than amd64? 和***镜像FAQ中的"镜像的源代码在Git中更改了,现在该怎么办?"An image's source changed in Git, now what?。
维护者:
MariaDB Foundation、MariaDB plc,以及来自我们 社区 的贡献者
获取帮助:
Database Administrators (Stack Exchange)、MariaDB 知识库(在此提问)。
另请参见 MariaDB 知识库上的 "获取 MariaDB 帮助" 文章。
Dockerfile 链接12.1.1-ubi10-rc, 12.1-ubi10-rc, 12.1.1-ubi-rc, 12.1-ubi-rc
12.1.1-noble-rc, 12.1-noble-rc, 12.1.1-rc, 12.1-rc
12.0.2-ubi10, 12.0-ubi10, 12-ubi10, 12.0.2-ubi, 12.0-ubi, 12-ubi
12.0.2-noble, 12.0-noble, 12-noble, noble, 12.0.2, 12.0, 12, latest
11.8.3-ubi9, 11.8-ubi9, 11-ubi9, lts-ubi9, 11.8.3-ubi, 11.8-ubi, 11-ubi, lts-ubi
11.8.3-noble, 11.8-noble, 11-noble, lts-noble, 11.8.3, 11.8, 11, lts
11.4.8-ubi9, 11.4-ubi9, 11.4.8-ubi, 11.4-ubi
11.4.8-noble, 11.4-noble, 11.4.8, 11.4
10.11.14-ubi9, 10.11-ubi9, 10-ubi9, 10.11.14-ubi, 10.11-ubi, 10-ubi
10.11.14-jammy, 10.11-jammy, 10-jammy, 10.11.14, 10.11, 10
10.6.23-ubi9, 10.6-ubi9, 10.6.23-ubi, 10.6-ubi
10.6.23-jammy, 10.6-jammy, 10.6.23, 10.6
问题提交地址:
可在 [***] 的"MDEV"项目下的"Docker"组件提交问题,或在 GitHub 提交
支持的架构:(更多信息)
amd64, arm64v8, ppc64le, s390x
已发布镜像 artifact 详情:
repo-info 仓库的 repos/mariadb/ 目录(历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/mariadb 标签
official-images 仓库的 library/mariadb 文件(历史记录)
本描述的来源:
docs 仓库的 mariadb/ 目录(历史记录)
MariaDB Server 是世界上最受欢迎的数据库服务器之一。它由 MySQL 的原开发团队打造,并保证保持开源。知名用户包括***、DBS 银行和 ServiceNow。
其目标是保持与 MySQL 的高度兼容性,确保库二进制等效性以及与 MySQL API 和命令的完全匹配。MariaDB 开发团队持续开发新功能并提升性能,以更好地服务用户。
!logo
arm64v8/mariadb 有多个标签,其中值得注意的是 latest(最新稳定版本)和 lts(最新长期支持版本)。
默认情况下,容器内运行的数据库将监听 3306 端口。你可以通过在 docker run 命令中添加 -p 3306:3306 参数,将容器的 3306 端口映射到主机的 3306 端口,如下所示:
console$ docker run --name some-mariadb -p 3306:3306 arm64v8/mariadb:latest
使用本镜像所需的环境变量包括设置 root 用户密码:
console$ docker run --detach --name some-mariadb --env MARIADB_ROOT_PASSWORD=my-secret-pw arm64v8/mariadb:latest
或:
console$ docker run --detach --name some-mariadb --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 arm64v8/mariadb:latest
或:
console$ docker run --detach --name some-mariadb --env MARIADB_RANDOM_ROOT_PASSWORD=1 arm64v8/mariadb:latest
... 此时容器日志中将包含生成的 root 密码。
docker composemariadb 的 compose.yaml 示例:
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,等待其完全初始化,然后访问 http://localhost:8080 或 [***](视情况而定)。
arm64v8/mariadb 服务器实例启动带有用户、密码和数据库的 MariaDB 实例:
console$ docker run --detach --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_DATABASE=exmple-database --env MARIADB_ROOT_PASSWORD=my-secret-pw arm64v8/mariadb:latest
arm64v8/mariadb 服务器实例由于应用程序需要与 MariaDB 通信,MariaDB 需要与应用程序在同一网络中启动:
console$ docker network create some-network $ 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 arm64v8/mariadb:latest $ 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
... 其中 some-network 是新创建的网络(非默认的 bridge 网络),some-mariadb 是你要分配给容器的名称,my-secret-pw 是要为 MariaDB root 用户设置的密码。参见上面的标签列表,选择符合你的需求和环境的相关标签。some-application 及其环境变量 APP_DB_HOST、APP_DB_USER 和 APP_DB_PASSWD 是应用程序的数据库连接配置。
以下命令启动另一个 arm64v8/mariadb 容器实例,并针对原始 arm64v8/mariadb 容器运行 mariadb 命令行客户端,允许你对数据库实例执行 SQL 语句:
console$ docker run -it --network some-network --rm arm64v8/mariadb mariadb -h some-mariadb -u example-user
... 其中 some-mariadb 是原始 arm64v8/mariadb 容器的名称(连接到 some-network Docker 网络)。
本镜像也可用作非 Docker 或远程实例的客户端:
console$ docker run -it --rm arm64v8/mariadb mariadb --host <server container IP> --user example-user --password --database test
这将为你提供标准的 MariaDB 提示符。你可以通过以下命令测试:
consoleMariaDB [(none)]> \s -------------- client/mariadb Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64) using EditLine wrapper Connection id: 20 Current database: test Current user: example-user@bark SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server: MariaDB Server version: 10.6.16-MariaDB Source distribution Protocol version: 10 Connection: 192.168.178.73 via TCP/IP Server characterset: latin1 Db characterset: latin1 Client characterset: utf8mb3 Conn. characterset: utf8mb3 TCP port: 3306 Uptime: 6 min 4 sec Threads: 1 Questions: 32 Slow queries: 0 Opens: 20 Open tables: 13 Queries per second avg: 0.087 --------------
... 这将显示版本和连接信息。然后你可以使用 exit 离开 MariaDB 命令行客户端和客户端容器。
更多关于 MariaDB 命令行客户端的信息,请参见 MariaDB 知识库:MariaDB 命令行客户端。
docker exec 命令允许你在运行的容器内执行命令。以下命令将为你提供 arm64v8/mariadb 容器内的 bash shell:
console$ docker exec -it some-mariadb bash
由于 MariaDB-Backup 与服务器版本高度耦合,使用特定版本的 mariadb 容器中的 mariadb-backup 会很有用:
console$ docker run --volume /backup-volume:/backup --rm mariadb:10.6.15 mariadb-backup --help
日志可通过 Docker 的容器日志查看:
console$ docker logs some-mariadb
自定义配置文件应以 .cnf 结尾,并以只读方式挂载到 /etc/mysql/conf.d 目录。这些文件应包含针对你的应用程序/环境所需的 MariaDB 工作负载的最小更改。MariaDB 配置文件将包含 [mariadb] 组,后跟 variable = value 设置,具体参见 设置服务器系统变量 或 option-prefix-variable。
arm64v8/mariadb 镜像配置包含 Ubuntu MariaDB 变量,并对容器有两项自定义更改:
host-cache-size=0]([***]
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429