
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
MariaDB是一款开源的关系型数据库管理系统(RDBMS),由MySQL原开发团队创建,旨在保持与MySQL的高度兼容性,同时提供更优的性能、安全性和功能扩展。MariaDB Docker镜像将MariaDB数据库封装为容器,简化了部署流程,支持快速搭建独立的数据库环境,适用于开发、测试及生产场景的数据存储与管理需求。
通过以下命令快速启动MariaDB容器:
bashdocker run -d \ --name mariadb \ -p 3306:3306 \ -e MARIADB_ROOT_PASSWORD=mysecretpassword \ -v mariadb-data:/var/lib/mysql \ mariadb:latest
参数说明:
-d:后台运行容器--name mariadb:指定容器名称-p 3306:3306:映射容器3306端口到主机(数据库默认端口)-e MARIADB_ROOT_PASSWORD:设置root用户密码(必填)-v mariadb-data:/var/lib/mysql:使用命名卷持久化数据(避免容器删除后数据丢失)MariaDB镜像支持通过环境变量自定义配置,常用变量如下:
| 环境变量 | 描述 | 示例值 |
|---|---|---|
MARIADB_ROOT_PASSWORD | 设置root用户密码(必填) | mysecretpassword |
MARIADB_DATABASE | 启动时自动创建的数据库名称 | mydb |
MARIADB_USER | 为新数据库创建的用户名称 | appuser |
MARIADB_PASSWORD | 新用户的密码 | apppass |
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD | 允许root用户无密码(仅开发环境) | yes |
MARIADB_ROOT_HOST | 允许root用户从指定主机登录 | %(允许所有主机) |
MARIADB_INITDB_SKIP_TZINFO | 跳过时区表初始化(加速启动) | 1 |
示例:创建带初始数据库和用户的容器
bashdocker run -d \ --name mariadb-app \ -p 3306:3306 \ -e MARIADB_ROOT_PASSWORD=rootpass \ -e MARIADB_DATABASE=mydb \ -e MARIADB_USER=appuser \ -e MARIADB_PASSWORD=apppass \ -v mariadb-data:/var/lib/mysql \ mariadb:latest
使用docker-compose.yml简化多容器应用中的数据库部署:
yamlversion: '3.8' services: mariadb: image: mariadb:latest container_name: mariadb restart: always # 容器退出时自动重启 ports: - "3306:3306" environment: MARIADB_ROOT_PASSWORD: rootpass MARIADB_DATABASE: mydb MARIADB_USER: appuser MARIADB_PASSWORD: apppass volumes: - mariadb-data:/var/lib/mysql # 数据持久化 - ./init-scripts:/docker-entrypoint-initdb.d # 初始化脚本目录(可选) networks: - app-network # 与应用共享网络 volumes: mariadb-data: # 命名卷,数据持久化 networks: app-network: driver: bridge
初始化脚本说明:
将SQL脚本(.sql、.sql.gz)或Shell脚本(.sh)放入./init-scripts目录,容器启动时会自动执行,用于初始化表结构、插入测试数据等。
为避免容器删除导致数据丢失,需通过以下方式持久化数据:
命名卷(推荐):如上述示例中使用-v mariadb-data:/var/lib/mysql,卷由Docker管理,安全性高。
主机目录挂载:将主机目录直接挂载到容器,适合需要直接访问数据文件的场景:
bashdocker run -d \ --name mariadb \ -v /path/on/host/mysql-data:/var/lib/mysql \ mariadb:latest
连接到容器内数据库:
bashdocker exec -it mariadb mysql -u root -p
从其他容器连接:通过容器名称或服务名(Docker Compose)访问,例如在应用容器中连接字符串为:
mysql://appuser:apppass@mariadb:3306/mydb
限制外部访问:生产环境建议不暴露3306端口到公网,通过Docker网络隔离,仅允许应用容器访问。
容器日志默认输出到标准输出,可通过Docker日志驱动配置存储位置:
bashdocker run -d \ --name mariadb \ --log-driver=json-file \ --log-opt max-size=10m \ --log-opt max-file=3 \ mariadb:latest
或在docker-compose.yml中配置:
yamlservices: mariadb: # ...其他配置 logging: driver: "json-file" options: max-size: "10m" max-file: "3"
MariaDB镜像提供多个标签,对应不同版本,可根据需求选择:
latest:最新稳定版11.4:特定主版本(如11.4.x系列)11.4.2:特定补丁版本11.4-focal:基于Ubuntu Focal的版本11.4-alpine:基于Alpine Linux的轻量版本(体积更小,适合资源受限环境)建议生产环境使用特定版本标签(如11.4.2),避免latest标签自动更新导致兼容性问题。
MARIADB_ROOT_PASSWORD,并使用强密码。MARIADB_ROOT_HOST限制仅允许特定IP或主机登录。docker exec mariadb mysqldump或mariabackup备份数据。appuser)访问数据库,避免权限过大。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 dpvduncan/mariadb 相关的常用 Docker 镜像,适用于 关系型数据库、MySQL 兼容、高性能 等不同场景: