amd64/mariadb** 注意 **:这是 mariadb 官方镜像 的 amd64 架构构建的“每个架构”仓库——更多信息,请参见官方镜像文档中的“除 amd64 之外的架构?”“Architectures other than amd64?” 和官方镜像常见问题中的“Git 中的镜像源已更改,现在该怎么办?”“An image's source changed in Git, now what?”。
-** 维护者 **:
MariaDB Foundation、MariaDB plc,以及 社区 贡献者
-** 获取帮助 **:
数据库管理员(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
-** 已发布镜像制品详情 **:
repo-info 仓库的 repos/mariadb/ 目录(历史记录)
(镜像元数据、传输大小等)
-** 镜像更新 **:
official-images 仓库的 library/mariadb 标签
official-images 仓库的 library/mariadb 文件(历史记录)
-** 本描述的来源 **:
docs 仓库的 mariadb/ 目录(历史记录)
MariaDB Server 是全球最受欢迎的数据库服务器之一。它由 MySQL 原开发者打造,保证开源。知名用户包括 ***、DBS Bank 和 ServiceNow。
其目标是保持与 MySQL 的高度兼容性,确保库二进制等效性,并与 MySQL API 和命令完全匹配。MariaDB 开发者持续开发新功能并提升性能,以更好地服务用户。
!logo
amd64/mariadb 有多个标签,其中 latest 为最新稳定版本,lts 为最新长期支持版本。
默认情况下,容器内运行的数据库监听 3306 端口。可通过 docker run 的 -p 3306:3306 参数将容器 3306 端口映射到主机 3306 端口,如下命令所示:
console$ docker run --name some-mariadb -p 3306:3306 amd64/mariadb:latest
使用此镜像需设置的环境变量包括 root 用户密码:
console$ docker run --detach --name some-mariadb --env MARIADB_ROOT_PASSWORD=my-secret-pw amd64/mariadb:latest
或:
console$ docker run --detach --name some-mariadb --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 amd64/mariadb:latest
或:
console$ docker run --detach --name some-mariadb --env MARIADB_RANDOM_ROOT_PASSWORD=1 amd64/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 或 [***](根据实际情况)。
amd64/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 amd64/mariadb:latest
amd64/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 amd64/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 是应用的数据库连接配置。
以下命令启动另一个 amd64/mariadb 容器实例,并对原始 amd64/mariadb 容器运行 mariadb 命令行客户端,允许您对数据库实例执行 SQL 语句:
console$ docker run -it --network some-network --rm amd64/mariadb mariadb -h some-mariadb -u example-user
... 其中 some-mariadb 是原始 amd64/mariadb 容器的名称(已连接到 some-network Docker 网络)。
此镜像也可用作非 Docker 或远程实例的客户端:
console$ docker run -it --rm amd64/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 命令允许您在运行的容器内运行命令。以下命令将为您提供 amd64/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。
amd64/mariadb 镜像配置包含 Ubuntu MariaDB 变量,并对容器有两项自定义更改:
host-cache-size=0skip-name-resolve这些禁用 user@hostname 用户的身份验证。要重新启用 skip-name-resolve,

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