
如果你使用 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是一款免费开源的内容管理框架(CMS),采用PHP开发并基于GNU通用公共许可证(GPL)发布。它被广泛用于构建各类网站和应用,从小型个人博客到大型企业、平台,包括白宫官网()和英国数据.gov.uk等知名站点。此外,Drupal也适用于知识管理系统和业务协作平台。
amd64、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x等多种硬件架构amd64、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x(https://github.com/docker-library/official-images#architectures-other-than-amd64%EF%BC%89启动一个简单的Drupal容器:
bashdocker run --name some-drupal -d drupal
将容器内80端口映射到主机8080端口,以便通过主机访问:
bashdocker run --name some-drupal -p 8080:80 -d drupal
通过浏览器访问 http://localhost:8080 或 http://主机IP:8080 即可进入Drupal初始化界面。
Drupal支持多种数据库,推荐通过Docker网络连接数据库容器。首次访问时需在初始化界面配置数据库参数。
MySQL
bashdocker 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 \ # root密码 mysql:5.7
drupal(对应MYSQL_DATABASE)user(对应MYSQL_USER)password(对应MYSQL_PASSWORD)some-mysql(容器名称,同一网络内可解析)PostgreSQL
bashdocker 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(容器名称)为持久化存储模块、主题、配置文件等,需挂载卷。推荐挂载以下目录:/var/www/html/modules(模块)、/var/www/html/profiles(配置文件)、/var/www/html/themes(主题)、/var/www/html/sites(站点配置)。
方法1:绑定挂载(Bind-Mount)
sites目录初始化到主机(避免挂载空目录覆盖初始化文件):bashdocker run --rm 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 \ drupal
方法2:Docker卷(Volume)
sites目录:bashdocker volume create drupal-sites docker run --rm -v drupal-sites:/temporary/sites 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 \ drupal
以下是Drupal与PostgreSQL的compose.yaml示例:
yaml# Drupal with PostgreSQL # 访问地址:http://localhost:8080 # 初始化Drupal时的数据库配置: # - 数据库类型:PostgreSQL # - 数据库名称:postgres # - 数据库用户名:postgres # - 数据库密码:example # - 高级选项 > 数据库主机:postgres services: drupal: image: 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: postgres:16 environment: POSTGRES_PASSWORD: example # 数据库密码 restart: always
执行docker compose up启动服务,完成后访问http://localhost:8080进行初始化。
drupal:<version>默认镜像,基于Debian系统,包含Apache Web服务器和PHP环境。适用于大多数场景,可直接运行或作为基础镜像扩展。标签中的bookworm、trixie等为Debian版本代号,建议显式指定以避免系统更新导致的兼容性问题。
drupal:<version>-fpm包含PHP-FPM(FastCGI进程管理器),需配合反向代理(如NGINX、Apache)使用。注意:FastCGI协议不加密,仅建议在私有容器网络内使用,禁止直接暴露到公网(避免使用-p参数发布端口)。
默认镜像不包含额外PHP扩展,如需添加,需基于此镜像构建自定义镜像。参考https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions%E7%9A%84%E6%89%A9%E5%B1%95%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95%EF%BC%8C%E7%A4%BA%E4%BE%8BDockerfile%EF%BC%9A
dockerfileFROM drupal:10-apache RUN apt-get update && apt-get install -y \ libpng-dev \ && docker-php-ext-install gd # 安装GD扩展(图像处理)
支持以非root用户运行容器,详见https://hub.docker.com/_/php/%E3%80%82
镜像元数据及额外许可信息可参考https://github.com/docker-library/repo-info/tree/master/repos/drupal%E3%80%82
以下是 drupal 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务