如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Drupal 是一个免费开源的内容管理框架,使用 PHP 编写并基于 GNU 通用公共许可证分发。它被用作后端框架,支持全球至少 2.1% 的网站,涵盖个人博客、企业网站、和网站(如 *** 和 ***),也用于知识管理和业务协作。
本镜像是 https://hub.docker.com/_/drupal 的 i386 架构版本,提供了在 i386 平台上运行 Drupal 的容器化解决方案,简化部署和管理流程。
启动基础 Drupal 容器
直接运行容器(默认使用 SQLite 数据库,适合快速测试):
bashdocker run --name some-drupal -d i386/drupal
映射端口以访问服务
将容器内 80 端口映射到主机 8080 端口,通过 http://localhost:8080 访问:
bashdocker run --name some-drupal -p 8080:80 -d i386/drupal
Drupal 支持多种数据库,以下为常用数据库的配置步骤。
MySQL 数据库
bashdocker network create some-network # 创建网络(若未创建) docker run -d --name some-mysql --network some-network \ -e MYSQL_DATABASE=drupal \ # 数据库名 -e MYSQL_USER=user \ # 数据库用户 -e MYSQL_PASSWORD=password \ # 用户密码 -e MYSQL_ROOT_PASSWORD=rootpass \ # root 密码 mysql:5.7
bashdocker run --name some-drupal --network some-network -p 8080:80 -d i386/drupal
drupal/user/password(与 MySQL 容器环境变量对应)some-mysql(同一网络内容器可通过容器名访问)PostgreSQL 数据库
bashdocker network create some-network # 若未创建网络 docker run -d --name some-postgres --network some-network \ -e POSTGRES_DB=drupal \ # 数据库名 -e POSTGRES_USER=user \ # 数据库用户 -e POSTGRES_PASSWORD=password \ # 用户密码 postgres:11
bashdocker run --name some-drupal --network some-network -p 8080:80 -d i386/drupal
drupal/user/password(与 PostgreSQL 容器环境变量对应)some-postgresDrupal 的模块、主题、配置等文件需持久化存储,推荐使用 Docker 卷或绑定挂载。
方法 1:绑定挂载(Bind Mount)
bash# 创建本地目录 mkdir -p /path/on/host/{modules,profiles,sites,themes} # 复制容器内 sites 目录内容到本地(其他目录默认为空,可直接挂载) docker run --rm i386/drupal tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites
bashdocker run --name some-drupal --network some-network -d \ -v /path/on/host/modules:/var/www/html/modules \ -v /path/on/host/profiles:/var/www/html/profiles \ -v /path/on/host/sites:/var/www/html/sites \ -v /path/on/host/themes:/var/www/html/themes \ -p 8080:80 \ i386/drupal
方法 2:Docker 卷(Volume)
bash# 创建卷 docker volume create drupal-modules docker volume create drupal-profiles docker volume create drupal-sites docker volume create drupal-themes # 初始化 sites 卷(复制容器内默认内容) docker run --rm -v drupal-sites:/temporary/sites i386/drupal cp -aRT /var/www/html/sites /temporary/sites
bashdocker run --name some-drupal --network some-network -d \ -v drupal-modules:/var/www/html/modules \ -v drupal-profiles:/var/www/html/profiles \ -v drupal-sites:/var/www/html/sites \ -v drupal-themes:/var/www/html/themes \ -p 8080:80 \ i386/drupal
以下是结合 PostgreSQL 数据库的 compose.yaml 示例:
yaml# Drupal + PostgreSQL 部署示例 # 访问地址:http://localhost:8080 # 初始化时数据库配置:类型=PostgreSQL,数据库名=postgres,用户名=postgres,密码=example,主机名=postgres services: drupal: image: i386/drupal:10-apache # 使用 i386 架构的 Drupal 镜像 ports: - "8080:80" # 端口映射 volumes: - drupal-modules:/var/www/html/modules - drupal-profiles:/var/www/html/profiles - drupal-sites:/var/www/html/sites # 自动初始化卷内容 - drupal-themes:/var/www/html/themes restart: always # 自动重启 postgres: image: postgres:16 # PostgreSQL 数据库 environment: POSTGRES_PASSWORD: example # 数据库密码 restart: always # 自动重启 volumes: drupal-modules: drupal-profiles: drupal-sites: drupal-themes:
启动命令:
bashdocker compose up -d
本镜像不包含额外 PHP 扩展,若需添加(如 gd、mysqli 等),需基于本镜像构建自定义镜像。参考 https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions%EF%BC%8C%E7%A4%BA%E4%BE%8B Dockerfile:
dockerfileFROM i386/drupal:10-apache # 安装 gd 扩展及依赖 RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd
参考 https://hub.docker.com/_/php/%EF%BC%8C%E9%80%9A%E8%BF%87%E8%B0%83%E6%95%B4%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%E6%88%96%E4%BD%BF%E7%94%A8 --user 参数运行非 root 用户容器。
i386/drupal:<version>默认镜像,基于 Apache 服务器,适合大多数场景。标签中的 bookworm、trixie 等为 Debian 发行版代号,指定基础系统版本,建议生产环境显式指定以避免依赖变更。
i386/drupal:<version>-fpm包含 PHP-FPM(FastCGI 进程管理器),需配合反向代理(如 Nginx、Apache)使用。注意:PHP-FPM 协议不加密,仅用于私有容器网络,避免直接暴露端口。
| 数据库类型 | 环境变量 | 说明 |
|---|---|---|
| MySQL | MYSQL_DATABASE | 数据库名称 |
| MySQL | MYSQL_USER | 数据库用户 |
| MySQL | MYSQL_PASSWORD | 用户密码 |
| MySQL | MYSQL_ROOT_PASSWORD | root 用户密码(可选) |
| PostgreSQL | POSTGRES_DB | 数据库名称 |
| PostgreSQL | POSTGRES_USER | 数据库用户 |
| PostgreSQL | POSTGRES_PASSWORD | 用户密码 |
完整标签列表请参考 https://github.com/docker-library/docs/tree/master/drupal/README.md#supported-tags-and-respective-dockerfile-links%E3%80%82
Drupal 软件遵循 GNU 通用公共许可证。镜像中包含的其他软件(如 Debian 基础系统组件)可能遵循不同许可证,详细信息见 https://github.com/docker-library/repo-info/tree/master/repos/drupal%E3%80%82%E4%BD%BF%E7%94%A8%E5%89%8D%E8%AF%B7%E7%A1%AE%E4%BF%9D%E7%AC%A6%E5%90%88%E6%89%80%E6%9C%89%E8%BD%AF%E4%BB%B6%E7%9A%84%E8%AE%B8%E5%8F%AF%E8%AF%81%E8%A6%81%E6%B1%82%E3%80%82
以下是 i386/drupal 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务