注意: 这是***drupal镜像的mips64le架构构建的“每架构”仓库——更多信息,请参见镜像文档中的“除amd64之外的架构?”和镜像FAQ中的“Git中的镜像源已更改,现在该怎么办?”。
维护者:
Docker社区(非Drupal社区或Drupal安全团队)
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
Dockerfile链接警告: 此镜像在mips64le架构上不受支持
提交issue的位置:
[***]
支持的架构: (更多信息)
amd64、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x
已发布镜像制品详情:
repo-info仓库的repos/drupal/目录(历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images仓库的library/drupal标签
official-images仓库的library/drupal文件(历史记录)
此描述的来源:
docs仓库的drupal/目录(历史记录)
Drupal是一个免费开源的内容管理框架,使用PHP编写,并根据GNU通用公共许可证分发。它被用作至少2.1%的全球网站的后端框架,从个人博客到企业、和网站,包括***.gov和***。它还用于知识管理和业务协作。
***.org/wiki/Drupal
!logo
启动drupal实例的基本命令模式如下:
console$ docker run --name some-drupal -d mips64le/drupal
如果希望从主机访问实例而无需使用容器IP,可以使用标准端口映射:
console$ docker run --name some-drupal -p 8080:80 -d mips64le/drupal
然后,在浏览器中通过http://localhost:8080或[***]访问。
此镜像支持多种数据库类型,最容易通过Docker网络使用。在默认配置中,可以使用SQLite来避免使用第二个容器并写入平面文件。以下是不同(更适合生产环境)数据库类型的详细说明。
首次访问此镜像提供的Web服务器时,会进行简短的设置过程。以下详细信息专门针对该配置过程中的“设置数据库”步骤。
要将Drupal与MySQL数据库一起使用,需要运行一个MySQL容器,并使用MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORD和MYSQL_ROOT_PASSWORD环境变量进行配置:
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
在Web安装向导的Drupal“设置数据库”步骤中,输入您提供的环境变量值:
<访问MySQL实例的详细信息>(MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE;参见mysql描述中的环境变量)some-mysql(同一docker-network上的容器可通过容器名称路由)要将Drupal与PostgreSQL数据库一起使用,需要运行一个Postgres容器,并使用POSTGRES_DB、POSTGRES_USER和POSTGRES_PASSWORD环境变量进行配置:
console$ docker run -d --name some-postgres --network some-network \ -e POSTGRES_DB=drupal \ -e POSTGRES_USER=user \ -e POSTGRES_PASSWORD=pass \ postgres:11
在Web安装向导的Drupal“设置数据库”步骤中,输入您提供的环境变量值:
PostgreSQL<访问PostgreSQL实例的详细信息>(POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB;参见postgres描述中的环境变量)some-postgres(同一docker-network上的容器可通过容器名称路由)默认情况下,此镜像不包含任何卷。关于此主题的大量讨论在docker-library/drupal#3中,强烈建议阅读。
大家一致认为/var/www/html/modules、/var/www/html/profiles和/var/www/html/themes通常应该是卷(未来此镜像的更新中可能会有显式的VOLUME声明),但/var/www/html/sites目录的处理更为复杂,因为该目录的内容需要使用镜像中的内容进行初始化。
如果使用绑定挂载,一种预填充本地sites目录的方法如下:
console$ docker run --rm mips64le/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 \ mips64le/drupal
使用Docker卷的另一种解决方案:
console$ docker volume create drupal-sites $ docker run --rm -v drupal-sites:/temporary/sites mips64le/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 \ mips64le/drupal
docker composedrupal的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 # 利用Docker的特性:新的***卷(我们在此创建的)将使用镜像中同一位置的现有内容进行初始化 - /var/www/html/sites restart: always postgres: image: postgres:16 environment: POSTGRES_PASSWORD: example restart: always
运行docker compose up,等待完全初始化后,访问http://localhost:8080或[***](视情况而定)。安装时选择postgres作为数据库,参数如下:dbname=postgres user=postgres pass=example hostname=postgres
此镜像不提供任何额外的PHP扩展或其他库,即使它们是流行插件所必需的。可能的插件数量无穷无尽,它们可能需要PHP支持的任何扩展。包含所有存在的PHP扩展会显著增加镜像大小。
如果需要额外的PHP扩展,需要基于此镜像创建自己的镜像。php镜像的文档解释了如何编译额外的扩展。此外,drupal:7 Dockerfile中有这样做的示例。
以下Docker Hub功能可以帮助保持依赖镜像的更新:
参见php镜像文档的“以任意用户运行”部分。
查看此镜像中包含的软件的许可证信息。
与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可证(例如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能位于repo-info仓库的drupal/目录中。
对于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429