arm64v8/drupalarm64v8/drupal是Drupal官方镜像的arm64v8架构构建版本。Drupal是一款免费开源的内容管理框架(CMF),采用PHP开发并基于GNU通用公共许可证(GPL)发布。它被广泛用作网站后端框架,支持从个人博客到企业、网站(如.gov、***)等各类场景,同时也适用于知识管理系统和业务协作平台。目前全球至少2.1%的网站使用Drupal作为后端框架。
注意:本镜像由Docker社区维护,非Drupal社区或Drupal安全团队官方维护。
console$ docker run --name some-drupal -d arm64v8/drupal
将容器内80端口映射到主机8080端口:
console$ docker run --name some-drupal -p 8080:80 -d arm64v8/drupal
通过http://localhost:8080或[***]在浏览器中访问。
Drupal支持多种数据库,推荐使用Docker网络连接独立数据库容器。首次访问时需通过Web界面完成数据库配置,以下为常见数据库的配置示例。
console$ docker 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=rootpassword \ mysql:5.7
console$ docker run --name some-drupal --network some-network -p 8080:80 -d arm64v8/drupal
drupal(对应MYSQL_DATABASE)user(对应MYSQL_USER)password(对应MYSQL_PASSWORD)some-mysql(MySQL容器名称,同一网络内可通过容器名访问)console$ docker 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
console$ docker run --name some-drupal --network some-network -p 8080:80 -d arm64v8/drupal
drupal(对应POSTGRES_DB)user(对应POSTGRES_USER)password(对应POSTGRES_PASSWORD)some-postgres(PostgreSQL容器名称)默认情况下,镜像未配置持久化卷。为避免容器重启后数据丢失,需挂载核心目录(模块、主题、配置等)。推荐挂载以下目录:/var/www/html/modules、/var/www/html/profiles、/var/www/html/themes、/var/www/html/sites。
console$ docker run --rm arm64v8/drupal tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites
console$ docker run --name some-drupal -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 \ arm64v8/drupal
console$ docker volume create drupal-sites $ docker run --rm -v drupal-sites:/temporary/sites arm64v8/drupal cp -aRT /var/www/html/sites /temporary/sites
console$ docker run --name some-drupal -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 \ arm64v8/drupal
使用docker-compose快速部署Drupal+PostgreSQL环境,创建compose.yaml文件:
yaml# 访问地址:http://localhost:8080 # Drupal安装时数据库配置: # - 数据库类型:PostgreSQL # - 数据库名称:postgres # - 用户名:postgres # - 密码:example # - 数据库主机:postgres services: drupal: image: arm64v8/drupal:10-apache ports: - "8080:80" volumes: - drupal-modules:/var/www/html/modules - drupal-profiles:/var/www/html/profiles - drupal-themes:/var/www/html/themes - drupal-sites:/var/www/html/sites # 自动用镜像内容初始化***卷 restart: always postgres: image: postgres:16 environment: POSTGRES_PASSWORD: example restart: always volumes: drupal-modules: drupal-profiles: drupal-themes: drupal-sites:
启动服务:
console$ docker compose up -d
本镜像仅包含基础PHP环境,如需额外扩展(如gd、xmlrpc等),需基于此镜像构建自定义镜像。参考PHP镜像文档的扩展安装方法,示例Dockerfile方向:
dockerfileFROM arm64v8/drupal:10-apache RUN apt-get update && apt-get install -y \ libpng-dev \ && docker-php-ext-install gd
参考PHP镜像的“以任意用户运行”文档,通过--user参数指定用户ID,或在自定义镜像中配置用户权限。
arm64v8/drupal:<version>(默认变体)基于Apache的标准变体,包含PHP和Apache服务,直接提供Web访问能力。标签中的版本号(如10、9)对应Drupal版本,基础镜像为Debian(标签可能包含Debian代号,如bookworm)。适合大多数场景,开箱即用。
arm64v8/drupal:<version>-fpm(FPM变体)包含PHP-FPM(FastCGI进程管理器),需配合反向代理(如Nginx、Apache)使用。注意:FastCGI协议不加密,严禁直接暴露到公网,仅在私有容器网络内使用。示例Nginx配置可参考PHP-FPM文档。
| 环境变量 | 说明 | 适用数据库 |
|---|---|---|
MYSQL_DATABASE | 数据库名称 | MySQL/MariaDB |
MYSQL_USER | 数据库用户名 | MySQL/MariaDB |
MYSQL_PASSWORD | 数据库用户密码 | MySQL/MariaDB |
MYSQL_ROOT_PASSWORD | 数据库root密码 | MySQL/MariaDB |
POSTGRES_DB | 数据库名称 | PostgreSQL |
POSTGRES_USER | 数据库用户名 | PostgreSQL |
POSTGRES_PASSWORD | 数据库密码 | PostgreSQL |
使用本镜像需遵守所有包含软件的许可证要求。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务