Drupal是一款开源内容管理平台,支持数百万网站和应用的运行。
下载次数: 1479262
类型:
amd64/drupalDrupal 是一个免费开源的内容管理框架,使用 PHP 编写并基于 GNU 通用公共许可证发布。它被用作后端框架,支持全球至少 2.1% 的网站,涵盖个人博客、企业网站、和站点(如 ***.gov 和 ***),也广泛用于知识管理和业务协作。
本 Docker 镜像是 Drupal 官方镜像的 amd64 架构专用版本,提供了便捷的 Drupal 应用部署方式,适用于快速搭建开发、测试和生产环境。
amd64、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x 等架构注意:由于镜像描述长度超过 Hub 25000 字符限制,"支持的标签"列表已被精简。完整标签列表请参见:
[***]
启动一个基础的 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 或 [***] 即可进入 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
drupal(对应 MYSQL_DATABASE)user(对应 MYSQL_USER)password(对应 MYSQL_PASSWORD)some-mysql(同一 Docker 网络内的容器可通过容器名访问)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 的模块、主题、配置等数据建议通过数据卷持久化存储。以下是两种常用方案:
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
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: 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: postgres:16 environment: POSTGRES_PASSWORD: example restart: always
启动服务:
console$ docker compose up -d
本镜像默认不包含额外的 PHP 扩展。如需添加,可基于本镜像创建自定义 Dockerfile,参考 php 镜像文档 中的方法编译安装扩展。示例 Dockerfile:
dockerfileFROM 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
参考 php 镜像文档中的"以非 root 用户运行"部分,可通过设置 --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 软件遵循 GNU 通用公共许可证。
与所有 Docker 镜像一样,本镜像可能包含其他软件(如 Bash、基础系统组件等),这些软件可能具有不同的许可证。更多许可证信息可在 repo-info 仓库的 drupal 目录 中找到。
使用本镜像即表示您同意遵守其中包含的所有软件的相关许可证条款。
维护者:Docker 社区(非 Drupal 社区或 Drupal 安全团队)
获取帮助:Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
提交问题:[***]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。

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