
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
基于Withblue.ink的实用主题构建,为Docker Cloud打造的可集群、自动发现的MariaDB Galera集群。
本项目旨在创建易于部署的MariaDB集群,可动态扩展且无需复杂配置。通过HOSTNAME(或Docker Cloud上的DOCKERCLOUD_CONTAINER_HOSTNAME)环境变量自动发现其他节点(如mariadb-1、mariadb-2、mariadb-3等),命名为{name}-1的容器将作为Galera集群创建者。该容器可直接用于Docker Cloud环境。
ymlmariadb-production: environment: - MYSQL_ROOT_PASSWORD=password # 集群root密码 image: 'docker.xuanyuan.run/pukoren/mariadb-galera:latest' ports: - '3306:3306' # 映射数据库端口 volumes: - '/data/mysql:/data' # 持久化数据存储
部署后,通过扩展容器数量即可自动扩展集群。
sh# 创建网络 docker network create --driver bridge galera # 启动第一个节点(集群创建者) docker run -it -e MYSQL_ROOT_PASSWORD=root --name=mariadb-1 -e HOSTNAME=mariadb-1 --rm --network galera -p 3306:3306 docker.xuanyuan.run/pukoren/mariadb-galera:latest # 启动第二个节点(自动加入集群) docker run -it -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name=mariadb-2 -e HOSTNAME=mariadb-2 --rm --network galera --link mariadb-1:mariadb-1 docker.xuanyuan.run/pukoren/mariadb-galera:latest
| 名称 | 示例值 | 描述 |
|---|---|---|
| HOSTNAME | mariadb-1 | 容器主机名,命名为{name}-1的容器将作为Galera集群主节点 |
| MYSQL_ROOT_PASSWORD | pass | 集群root用户密码 |
| MYSQL_ALLOW_EMPTY_PASSWORD | anything | 允许空root密码 |
| MYSQL_RANDOM_ROOT_PASSWORD | anything | 生成随机root密码 |
| MYSQL_DATABASE | anything | 首次启动时创建的数据库名称 |
| MYSQL_USER | username | 首次启动时创建的用户名,需同时提供MYSQL_PASSWORD;若指定MYSQL_DATABASE,将授予该数据库访问权限 |
| MARIADB_DEFAULT_STORAGE_ENGINE | InnoDB | 节点默认存储引擎 |
| GALERA_SLAVE_THREADS | 1 | 启动的从线程数量,https://mariadb.com/kb/en/mariadb/galera-cluster-system-variables/#wsrep_slave_threads |
| MARIADB_INNODB_BUFFER_POOL_SIZE | 134217728 | InnoDB缓冲池大小(字节),https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_buffer_pool_size |
| MARIADB_INNODB_BUFFER_POOL_INSTANCES | 1 | InnoDB缓冲池实例数量,https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_buffer_pool_instances%EF%BC%8C%E6%AF%8F%E4%B8%AA%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%B0%8F%E8%87%B3%E5%B0%91%E4%B8%BA1GB%EF%BC%88%E5%9F%BA%E4%BA%8E%60POOL_SIZE%60%EF%BC%89 |
切勿关闭整个集群——否则节点可能无法恢复。若必须关闭整个集群并稍后重启,需删除第一个容器({name}-1)共享卷中的clustered文件。
始终采用滚动部署流程,避免更新时集群关闭。
创建位于反向代理后的MariaDB Galera集群,实现负载均衡并基于源IP地址过滤入站请求:
ymlmariadb-production: environment: - 'EXCLUDE_PORTS=4567,4568,4444' # 排除的端口 - 'EXTRA_SETTINGS=acl network_allowed src 192.168.1.0,block if !network_allowed' # IP过滤规则 - MYSQL_ROOT_PASSWORD=password # 集群root密码 - TCP_PORTS=3306 # 开放的TCP端口 image: 'pukoren/mariadb-galera:latest' sequential_deployment: true # 启用顺序部署 volumes: - '/data/mysql:/data' # 数据持久化 mariadb-production-lb: environment: - 'STATS_AUTH=user:pass' # 统计页面认证信息 - STATS_PORT=1936 # 统计页面端口 image: 'dockercloud/haproxy:latest' # HAProxy镜像 links: - mariadb-production # 链接到MariaDB集群 ports: - '1936:1936' # 统计页面端口映射 - '3306:3306' # 数据库端口映射 roles: - global # 全局角色
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务