本仓库是https://hub.docker.com/_/drupal%E7%9A%84%60arm32v5%60%E6%9E%B6%E6%9E%84%E4%B8%93%E7%94%A8%E4%BB%93%E5%BA%93%E3%80%82%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E8%AF%B7%E5%8F%82%E8%A7%81%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84https://github.com/docker-library/official-images#architectures-other-than-amd64%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8FFAQ%E4%B8%AD%E7%9A%84https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E3%80%82
维护者:
https://github.com/docker-library/drupal%EF%BC%88*%E9%9D%9E*Drupal%E7%A4%BE%E5%8C%BA%E6%88%96Drupal%E5%AE%89%E5%85%A8%E5%9B%A2%E9%98%9F%EF%BC%89
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
Dockerfile链接警告:此镜像在arm32v5架构上不受支持
问题提交地址:
https://github.com/docker-library/drupal/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/drupal/%E3%80%81https://hub.docker.com/r/arm32v6/drupal/%E3%80%81https://hub.docker.com/r/arm32v7/drupal/%E3%80%81https://hub.docker.com/r/arm64v8/drupal/%E3%80%81https://hub.docker.com/r/i386/drupal/%E3%80%81https://hub.docker.com/r/ppc64le/drupal/%E3%80%81https://hub.docker.com/r/riscv64/drupal/%E3%80%81https://hub.docker.com/r/s390x/drupal/
镜像 artifact 详情:
https://github.com/docker-library/repo-info/blob/master/repos/drupal%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/drupal%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fdrupal
https://github.com/docker-library/official-images/blob/master/library/drupal%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/drupal%EF%BC%89
本描述的来源:
https://github.com/docker-library/docs/tree/master/drupal%EF%BC%88https://github.com/docker-library/docs/commits/master/drupal%EF%BC%89
Drupal是一个免费开源的内容管理框架,用PHP编写,基于GNU通用公共许可证分发。它被用作至少2.1%的全球网站的后端框架,从小型个人博客到企业、和网站,包括***.gov和***。它也用于知识管理和业务协作。
***.org/wiki/Drupal
!https://raw.githubusercontent.com/docker-library/docs/e405066455691ca2429eb8094777f12d2dad8f91/drupal/logo.svg?sanitize=true
启动drupal实例的基本命令模式:
console$ docker run --name some-drupal -d arm32v5/drupal
如果希望从主机访问实例而无需使用容器IP,可以使用标准端口映射:
console$ docker run --name some-drupal -p 8080:80 -d arm32v5/drupal
然后通过浏览器访问http://localhost:8080或http://主机IP:8080。
此镜像支持多种数据库类型,最容易通过Docker网络使用。在默认配置中,可以使用SQLite来避免第二个容器并写入平面文件。以下是不同(更适合生产环境)数据库类型的详细说明。
首次访问此镜像提供的Web服务器时,会进行简短的设置过程。以下详细信息专门针对该配置过程中的“设置数据库”步骤。
要将Drupal与MySQL数据库一起使用,需要运行https://hub.docker.com/_/mysql/%E5%AE%B9%E5%99%A8%EF%BC%8C%E5%B9%B6%E4%BD%BF%E7%94%A8%60MYSQL_DATABASE%60%E3%80%81%60MYSQL_USER%60%E3%80%81%60MYSQL_PASSWORD%60%E5%92%8C%60MYSQL_ROOT_PASSWORD%60%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE%EF%BC%9A
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的Web安装向导的“设置数据库”步骤中,输入您提供的环境变量值:
<访问MySQL实例的详细信息>(MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE;参见https://hub.docker.com/_/mysql/%E6%8F%8F%E8%BF%B0%E4%B8%AD%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%89some-mysql(同一docker-network上的容器可通过容器名称路由)要将Drupal与PostgreSQL数据库一起使用,需要运行https://hub.docker.com/_/postgres%E5%AE%B9%E5%99%A8%EF%BC%8C%E5%B9%B6%E4%BD%BF%E7%94%A8%60POSTGRES_DB%60%E3%80%81%60POSTGRES_USER%60%E5%92%8C%60POSTGRES_PASSWORD%60%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE%EF%BC%9A
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的Web安装向导的“设置数据库”步骤中,输入您提供的环境变量值:
PostgreSQL<访问PostgreSQL实例的详细信息>(POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB;参见https://hub.docker.com/_/postgres/%E6%8F%8F%E8%BF%B0%E4%B8%AD%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%89some-postgres(同一docker-network上的容器可通过容器名称路由)默认情况下,此镜像不包含任何卷。关于此主题的详细讨论请参见https://github.com/docker-library/drupal/issues/3%EF%BC%8C%E5%BC%BA%E7%83%88%E5%BB%BA%E8%AE%AE%E9%98%85%E8%AF%BB%E3%80%82
共识是/var/www/html/modules、/var/www/html/profiles和/var/www/html/themes通常应作为卷(未来此镜像可能会明确声明VOLUME),但/var/www/html/sites目录的处理较为复杂,因为该目录的内容需要使用镜像中的内容初始化。
如果使用bind-mounts,一种预填充本地sites目录的方法如下:
console$ docker run --rm arm32v5/drupal tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites
然后可以将其bind-mount到新容器中:
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 \ arm32v5/drupal
使用Docker卷的另一种解决方案:
console$ docker volume create drupal-sites $ docker run --rm -v drupal-sites:/temporary/sites arm32v5/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 \ arm32v5/drupal
drupal的compose.yaml示例:
yaml# Drupal与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 # 利用Docker的特性:新的匿名卷会使用镜像中相同位置的现有内容初始化 - /var/www/html/sites restart: always postgres: image: postgres:16 environment: POSTGRES_PASSWORD: example restart: always
运行docker compose up,等待初始化完成后,访问http://localhost:8080或http://主机IP:8080(视情况而定)。安装期间选择postgres作为数据库,参数如下:数据库名称=postgres,用户名=postgres,密码=example,主机名=postgres。
此镜像不提供任何额外的PHP扩展或其他库,即使它们是流行插件所必需的。可能的插件数量无限,它们可能需要PHP支持的任何扩展。包含所有PHP扩展会显著增加镜像大小。
如果需要额外的PHP扩展,需要基于此镜像创建自己的镜像。https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions%E8%A7%A3%E9%87%8A%E4%BA%86%E5%A6%82%E4%BD%95%E7%BC%96%E8%AF%91%E9%A2%9D%E5%A4%96%E7%9A%84%E6%89%A9%E5%B1%95%E3%80%82%E6%AD%A4%E5%A4%96%EF%BC%8Chttps://github.com/docker-library/drupal/blob/bee08efba505b740a14d68254d6e51af7ab2f3ea/7/Dockerfile#L6-9%E6%8F%90%E4%BE%9B%E4%BA%86%E7%9B%B8%E5%85%B3%E7%A4%BA%E4%BE%8B%E3%80%82
以下Docker Hub功能可帮助保持依赖镜像的更新:
参见https://hub.docker.com/_/php/%E3%80%82
查看此镜像中包含的软件的许可证信息。
与所有Docker镜像一样,这些镜像可能还包含其他软件,可能受其他许可证约束(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能位于https://github.com/docker-library/repo-info/tree/master/repos/drupal%E4%B8%AD%E3%80%82
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用符合其中包含的所有软件的相关许可证。
以下是 arm32v5/drupal 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务