如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为https://hub.docker.com/_/drupal%E7%9A%84%60arm32v6%60%E6%9E%B6%E6%9E%84%E4%B8%93%E7%94%A8%E7%89%88%E6%9C%AC%E3%80%82Drupal%E6%98%AF%E4%B8%80%E4%B8%AA%E5%85%8D%E8%B4%B9%E5%BC%80%E6%BA%90%E7%9A%84%E5%86%85%E5%AE%B9%E7%AE%A1%E7%90%86%E6%A1%86%E6%9E%B6%EF%BC%8C%E9%87%87%E7%94%A8PHP%E7%BC%96%E5%86%99%E5%B9%B6%E5%9F%BA%E4%BA%8EGNU%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81%E5%8F%91%E5%B8%83%E3%80%82%E5%AE%83%E8%A2%AB%E7%94%A8%E4%BD%9C%E5%90%8E%E7%AB%AF%E6%A1%86%E6%9E%B6%EF%BC%8C%E6%94%AF%E6%8C%81%E4%BB%8E%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E5%88%B0%E4%BC%81%E4%B8%9A%E3%80%81***%E7%BD%91%E7%AB%99%E7%AD%89%E5%90%84%E7%B1%BB%E7%BD%91%E7%AB%99%E5%BB%BA%E8%AE%BE%EF%BC%8C%E5%8C%85%E6%8B%AC%E7%99%BD%E5%AE%AB%E5%AE%98%E7%BD%91(***)%E5%92%8C%E8%8B%B1%E5%9B%BD%E6%95%B0%E6%8D%AE.gov.uk%E7%AD%89%E3%80%82
启动一个基本的drupal实例:
console$ docker run --name some-drupal -d arm32v6/drupal
如需从主机访问容器,可以进行端口映射:
console$ docker run --name some-drupal -p 8080:80 -d arm32v6/drupal
然后通过浏览器访问 http://localhost:8080 或 http://主机IP:8080。首次访问时,系统会引导你完成Drupal的安装过程。
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
console$ docker run --name some-drupal --network some-network -p 8080:80 -d arm32v6/drupal
console$ docker run -d --name some-postgres --network some-network \ -e POSTGRES_DB=drupal \ -e POSTGRES_USER=user \ -e POSTGRES_PASSWORD=pass \ postgres:11
console$ docker run --name some-drupal --network some-network -p 8080:80 -d arm32v6/drupal
为确保Drupal数据持久化,建议将以下目录挂载为卷:
/var/www/html/modules - 模块目录/var/www/html/profiles - 配置文件目录/var/www/html/themes - 主题目录/var/www/html/sites - 站点配置和数据目录使用绑定挂载:
console# 首先从镜像中复制初始sites目录到主机 $ docker run --rm arm32v6/drupal tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites # 然后启动容器并挂载目录 $ 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 \ arm32v6/drupal
使用Docker卷:
console# 创建专用卷 $ docker volume create drupal-sites $ docker volume create drupal-modules $ docker volume create drupal-profiles $ docker volume create drupal-themes # 初始化sites卷 $ docker run --rm -v drupal-sites:/temporary/sites arm32v6/drupal cp -aRT /var/www/html/sites /temporary/sites # 启动容器并挂载卷 $ 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 \ arm32v6/drupal
创建compose.yaml文件:
yaml# Drupal with PostgreSQL # 访问地址: "http://localhost:8080" # 初始Drupal设置时: # 数据库类型: PostgreSQL # 数据库名称: postgres # 数据库用户名: postgres # 数据库密码: example # 高级选项 > 数据库主机: postgres services: drupal: image: arm32v6/drupal:10-fpm-alpine 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 depends_on: - postgres postgres: image: arm32v6/postgres:16-alpine environment: POSTGRES_PASSWORD: example POSTGRES_USER: postgres POSTGRES_DB: postgres volumes: - postgres-data:/var/lib/postgresql/data restart: always volumes: drupal-modules: drupal-profiles: drupal-sites: drupal-themes: postgres-data: networks: default: driver: bridge
启动服务:
console$ docker compose up -d
本镜像不包含所有可能的PHP扩展。如需添加额外扩展,需基于本镜像创建自定义Dockerfile:
dockerfileFROM arm32v6/drupal:10-fpm-alpine # 安装所需的PHP扩展 RUN apk add --no-cache \ libpng-dev \ libjpeg-turbo-dev \ freetype-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd mysqli pdo pdo_mysql
构建并使用自定义镜像:
console$ docker build -t my-custom-drupal . $ docker run --name some-drupal -p 8080:80 -d my-custom-drupal
为增强安全性,可以非root用户身份运行容器:
console$ docker run --name some-drupal -u 1000:1000 -p 8080:80 -d arm32v6/drupal
arm32v6/drupal镜像提供多种变体,适用于不同场景:
arm32v6/drupal:<version>默认镜像,包含Apache Web服务器和PHP。适合大多数用例,开箱即用。
arm32v6/drupal:<version>-fpm包含PHP-FPM(PHP FastCGI进程管理器),适用于需要与反向代理(如Nginx)配合使用的场景。
使用此变体时,需要配置反向代理服务器。例如,使用Nginx作为反向代理:
nginxserver { listen 80; server_name example.com; root /var/www/html; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass some-drupal:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
警告: FastCGI协议本身不包含安全机制,不应将FPM端口直接暴露到公网。
Drupal软件遵循GNU通用公共许可证。
本镜像中包含的其他软件可能具有不同的许可证,如基础发行版中的Bash等工具以及主要软件的任何直接或间接依赖项。
有关更多许可信息,请查看https://github.com/docker-library/repo-info/tree/master/repos/drupal%E3%80%82
使用预构建镜像时,镜像用户有责任确保对本镜像的任何使用都符合其中包含的所有软件的相关许可。
以下是 arm32v6/drupal 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

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