
如果你使用 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% 的网站,涵盖个人博客、企业网站、和站点(如 *** 和 ***),也广泛用于知识管理和业务协作。
本 Docker 镜像是 Drupal 官方镜像的 amd64 架构专用版本,提供了便捷的 Drupal 应用部署方式,适用于快速搭建开发、测试和生产环境。
amd64、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x 等架构注意:由于镜像描述长度超过 Hub 25000 字符限制,"支持的标签"列表已被精简。完整标签列表请参见:
https://github.com/docker-library/docs/tree/master/drupal/README.md#supported-tags-and-respective-dockerfile-links
启动一个基础的 Drupal 实例:
console$ docker run --name some-drupal -d amd64/drupal
如需从主机访问容器服务,可映射端口:
console$ docker run --name some-drupal -p 8080:80 -d amd64/drupal
通过浏览器访问 http://localhost:8080 或 http://主机IP:8080 即可进入 Drupal 初始设置界面。首次访问时需完成安装向导,其中"数据库设置"步骤需根据实际数据库配置填写。
MySQL
console$ 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=password \ mysql:5.7
drupal(对应 MYSQL_DATABASE)user(对应 MYSQL_USER)password(对应 MYSQL_PASSWORD)some-mysql(同一 Docker 网络内的容器可通过容器名访问)PostgreSQL
console$ docker run -d --name some-postgres --network some-network \ -e POSTGRES_DB=drupal \ -e POSTGRES_USER=user \ -e POSTGRES_PASSWORD=pass \ postgres:11
drupal(对应 POSTGRES_DB)user(对应 POSTGRES_USER)pass(对应 POSTGRES_PASSWORD)some-postgres(同一 Docker 网络内的容器可通过容器名访问)Drupal 的模块、主题、配置等数据建议通过数据卷持久化存储。以下是两种常用方案:
方案一:使用绑定挂载(Bind Mounts)
sites 目录到主机:console$ docker run --rm amd64/drupal tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites
console$ docker 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 \ amd64/drupal
方案二:使用 Docker 数据卷(Volumes)
sites 目录:console$ docker volume create drupal-sites $ docker run --rm -v drupal-sites:/temporary/sites amd64/drupal cp -aRT /var/www/html/sites /temporary/sites
console$ docker 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 \ amd64/drupal
创建 compose.yaml 文件:
yaml# Drupal with PostgreSQL # 访问地址: "http://localhost:8080" # 初始设置时数据库配置: # - 数据库类型: PostgreSQL # - 数据库名称: postgres # - 数据库用户名: postgres # - 数据库密码: example # - 高级选项 > 数据库主机: postgres services: drupal: image: docker.xuanyuan.run/amd64/drupal:10-apache ports: - 8080:80 volumes: - /var/www/html/modules - /var/www/html/profiles - /var/www/html/themes - /var/www/html/sites # 匿名卷会自动用镜像内内容初始化 restart: always postgres: image: docker.xuanyuan.run/postgres:16 environment: POSTGRES_PASSWORD: example restart: always
启动服务:
console$ docker compose up -d
本镜像默认不包含额外的 PHP 扩展。如需添加,可基于本镜像创建自定义 Dockerfile,参考 https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions 中的方法编译安装扩展。示例 Dockerfile:
dockerfileFROM docker.xuanyuan.run/amd64/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%E5%8F%AF%E9%80%9A%E8%BF%87%E8%AE%BE%E7%BD%AE --user 参数或在 Dockerfile 中配置用户来实现。
默认镜像,基于 Apache 和 PHP 构建,适用于大多数场景。标签中的 bookworm、trixie 等为 Debian 发行版代号,指定了镜像的基础系统版本。如需安装额外系统包,建议显式指定发行版代号以避免兼容性问题。
包含 PHP FastCGI 进程管理器(FPM)的变体,需配合反向代理(如 NGINX、Apache)使用。警告:FastCGI 协议本身不提供安全保护,除非明确了解风险,否则不要使用 -p 参数将 FPM 端口暴露到外部网络。
使用示例(配合 NGINX):
docker network create drupal-networkdocker run --name drupal-fpm --network drupal-network -d amd64/drupal:10-fpmdrupal-fpm:9000本镜像包含的 Drupal 软件遵循 https://www.drupal.org/licensing/faq%E3%80%82
与所有 Docker 镜像一样,本镜像可能包含其他软件(如 Bash、基础系统组件等),这些软件可能具有不同的许可证。更多许可证信息可在 https://github.com/docker-library/repo-info/tree/master/repos/drupal 中找到。
使用本镜像即表示您同意遵守其中包含的所有软件的相关许可证条款。
维护者:https://github.com/docker-library/drupal%EF%BC%88%E9%9D%9E Drupal 社区或 Drupal 安全团队)
获取帮助:https://dockr.ly/comm-slack%E3%80%81Server Fault、https://unix.stackexchange.com/help/on-topic 或 https://stackoverflow.com/help/on-topic
提交问题:https://github.com/docker-library/drupal/issues?q=
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务