
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意: 这是 https://hub.docker.com/_/mariadb 的s390x架构构建版本的"每架构"仓库。有关更多信息,请参见官方镜像文档中的 https://github.com/docker-library/official-images#architectures-other-than-amd64 和官方镜像FAQ中的 https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what。
MariaDB Server是世界上最受欢迎的数据库服务器之一。它由MySQL的原始开发人员创建,并保证保持开源。著名用户包括***、DBS银行和ServiceNow。其目的是保持与MySQL的高度兼容性,确保库二进制等效性以及与MySQL API和命令的精确匹配。MariaDB开发人员继续开发新功能并提高性能,以更好地为用户服务。
https://mariadb.org、https://mariadb.com,以及来自https://github.com/MariaDB/mariadb-docker的贡献者
s390xs390x/mariadb镜像适用于以下场景:
s390x/mariadb有多个标签,其中latest是最新的稳定版本,lts是最新的长期支持版本。
端口绑定
默认情况下,容器内运行的数据库将监听3306端口。您可以使用-p 3306:3306参数将容器端口3306映射到主机端口3306:
console$ docker run --name some-mariadb -p 3306:3306 s390x/mariadb:latest
基本配置启动
使用此镜像所需的环境变量包括设置root用户密码:
console$ docker run --detach --name some-mariadb --env MARIADB_ROOT_PASSWORD=my-secret-pw s390x/mariadb:latest
或允许空root密码:
console$ docker run --detach --name some-mariadb --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 s390x/mariadb:latest
或生成随机root密码:
console$ docker run --detach --name some-mariadb --env MARIADB_RANDOM_ROOT_PASSWORD=1 s390x/mariadb:latest
生成的root密码将包含在容器日志中。
创建用户、密码和数据库
启动带有用户、密码和数据库的MariaDB实例:
console$ 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 \ s390x/mariadb:latest
在网络中启动容器
由于应用程序需要与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 \ s390x/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是新创建的网络,some-mariadb是分配给容器的名称,my-secret-pw是要为MariaDB root用户设置的密码。some-application及其环境变量APP_DB_HOST、APP_DB_USER和APP_DB_PASSWD是应用程序的数据库连接配置。
mariadb的示例compose.yaml:
yaml# 使用root/example作为用户/密码凭据 services: db: image: docker.xuanyuan.run/s390x/mariadb restart: always environment: MARIADB_ROOT_PASSWORD: example adminer: image: docker.xuanyuan.run/adminer restart: always ports: - 8080:8080
运行docker compose up,等待其完全初始化,然后访问http://localhost:8080或http://host-ip:8080(视情况而定)。
以下命令启动另一个s390x/mariadb容器实例,并对原始s390x/mariadb容器运行mariadb命令行客户端,允许您对数据库实例执行SQL语句:
console$ docker run -it --network some-network --rm s390x/mariadb mariadb -h some-mariadb -u example-user
其中some-mariadb是原始s390x/mariadb容器的名称(连接到some-network Docker网络)。
此镜像也可用作非Docker或远程实例的客户端:
console$ docker run -it --rm s390x/mariadb mariadb --host <服务器容器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命令行客户端和客户端容器。
docker exec命令允许您在运行的容器内运行命令。以下命令将为您提供s390x/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设置,如https://mariadb.com/kb/en/server-system-variables/#setting-server-system-variables或https://mariadb.com/kb/en/configuring-mariadb-with-option-files/#option-prefixes所述。
s390x/mariadb镜像配置包含Ubuntu MariaDB变量,并对容器进行了两处自定义更改:
这些禁用了user@hostname用户的身份验证。要重新启用skip-name-resolve,请使用disable-skip-name-resolve作为变量或参数。启用后,host-cache-size应足以容纳连接到s390x/mariadb的容器数量。
要查看s390x/mariadb容器的最终配置:
console$ docker run --name some-mariadb -v /my/custom:/etc/mysql/conf.d --rm s390x/mariadb:latest my_print_defaults --mysqld
不使用cnf文件的配置
许多配置选项可以作为标志传递给mariadbd。这使您可以灵活地自定义容器,而无需cnf文件。例如,如果要在端口3808上运行,只需运行以下命令:
console$ docker run --name some-mariadb -e MARIADB_ROOT_PASSWORD=my-secret-pw -d s390x/mariadb:latest --port 3808
如果您想查看可用选项的完整列表,只需运行:
console$ docker run -it --rm s390x/mariadb:latest --verbose --help
启动s390x/mariadb镜像时,可以通过在docker run命令行上传递一个或多个环境变量来调整MariaDB实例的初始化。请注意,除MARIADB_AUTO_UPGRADE外
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 s390x/mariadb 相关的常用 Docker 镜像,适用于 关系型数据库、MySQL 兼容、高性能 等不同场景: