
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
⚠️⚠️⚠️ 本镜像是由社区志愿者维护的,专为专家使用设计。如需快速部署并支持完整的 Nextcloud Hub 功能,请使用由 Nextcloud GmbH 维护的 https://github.com/nextcloud/all-in-one#nextcloud-all-in-one%E3%80%82
Nextcloud 是一个安全的个人数据存储解决方案,允许用户从任何设备访问和共享文件、日历、联系人、邮件等数据,数据完全由用户自主掌控。本 Docker 镜像是由 Nextcloud 社区开发和维护的微服务版本,旨在提供灵活的部署选项,适用于熟悉 Docker 和微服务架构的专家用户。
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390xapache:包含完整 Nextcloud 及 Apache Web 服务器,易于使用fpm:基于 PHP-FPM,需配合外部 Web 服务器(如 Nginx)fpm-alpine:基于 Alpine Linux 的轻量级 PHP-FPM 版本pre-installation、post-installation、pre-upgrade、post-upgrade、before-starting 五个钩子点,支持自定义初始化逻辑| 标签系列 | 说明 | Dockerfile 链接 |
|---|---|---|
30.0.16-apache, 30.0-apache, 30-apache, 30.0.16, 30.0, 30 | Apache 服务器,Nextcloud 30 版本 | https://github.com/nextcloud/docker/blob/f5b7b40808604dd61411d0f7a775ac5ff29a974b/30/apache/Dockerfile |
30.0.16-fpm, 30.0-fpm, 30-fpm | PHP-FPM,Nextcloud 30 版本 | https://github.com/nextcloud/docker/blob/f5b7b40808604dd61411d0f7a775ac5ff29a974b/30/fpm/Dockerfile |
30.0.16-fpm-alpine, 30.0-fpm-alpine, 30-fpm-alpine | Alpine 版 PHP-FPM,Nextcloud 30 版本 | https://github.com/nextcloud/docker/blob/f5b7b40808604dd61411d0f7a775ac5ff29a974b/30/fpm-alpine/Dockerfile |
31.0.9-apache, 31.0-apache, 31-apache, stable-apache, production-apache, 31.0.9, 31.0, 31, stable, production | Apache 服务器,稳定版(31) | https://github.com/nextcloud/docker/blob/f5b7b40808604dd61411d0f7a775ac5ff29a974b/31/apache/Dockerfile |
31.0.9-fpm, 31.0-fpm, 31-fpm, stable-fpm, production-fpm | PHP-FPM,稳定版(31) | https://github.com/nextcloud/docker/blob/f5b7b40808604dd61411d0f7a775ac5ff29a974b/31/fpm/Dockerfile |
31.0.9-fpm-alpine, 31.0-fpm-alpine, 31-fpm-alpine, stable-fpm-alpine, production-fpm-alpine | Alpine 版 PHP-FPM,稳定版(31) | https://github.com/nextcloud/docker/blob/f5b7b40808604dd61411d0f7a775ac5ff29a974b/31/fpm-alpine/Dockerfile |
32.0.0-apache, 32.0-apache, 32-apache, apache, 32.0.0, 32.0, 32, latest | Apache 服务器,最新版(32) | https://github.com/nextcloud/docker/blob/1f87830fd6f478c993248475979472aab1787a75/32/apache/Dockerfile |
32.0.0-fpm, 32.0-fpm, 32-fpm, fpm | PHP-FPM,最新版(32) | https://github.com/nextcloud/docker/blob/1f87830fd6f478c993248475979472aab1787a75/32/fpm/Dockerfile |
32.0.0-fpm-alpine, 32.0-fpm-alpine, 32-fpm-alpine, fpm-alpine | Alpine 版 PHP-FPM,最新版(32) | https://github.com/nextcloud/docker/blob/1f87830fd6f478c993248475979472aab1787a75/32/fpm-alpine/Dockerfile |
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390xApache 镜像包含 Web 服务器,可直接运行并暴露端口访问:
bashdocker run -d -p 8080:80 arm64v8/nextcloud
访问 http://localhost:8080 即可进入 Nextcloud 初始化页面(默认使用 SQLite 数据库)。
FPM 镜像需配合外部 Web 服务器(如 Nginx),仅暴露 FastCGI 端口(9000),不建议映射到主机:
bashdocker run -d arm64v8/nextcloud:fpm
注意:FPM 无法处理静态文件(样式表、图片等),需 Web 服务器通过
volumes-from或共享卷访问/var/www/html目录。
默认使用 SQLite,推荐生产环境使用 MySQL/MariaDB 或 PostgreSQL。可通过环境变量自动配置,或在初始化页面手动输入数据库信息。
示例:链接 MariaDB 容器
bash# 启动 MariaDB 容器 docker run -d \ --name nextcloud-db \ -v db:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=rootpass \ -e MYSQL_PASSWORD=dbpass \ -e MYSQL_DATABASE=nextcloud \ -e MYSQL_USER=nextcloud \ mariadb:10.6 # 启动 Nextcloud,链接数据库 docker run -d \ --name nextcloud \ -p 8080:80 \ --link nextcloud-db:mysql \ -e MYSQL_HOST=mysql \ -e MYSQL_USER=nextcloud \ -e MYSQL_PASSWORD=dbpass \ -e MYSQL_DATABASE=nextcloud \ -v nextcloud:/var/www/html \ arm64v8/nextcloud
Nextcloud 数据(配置、文件上传等)存储在 /var/www/html,推荐使用命名卷或主机目录挂载以持久化数据:
核心数据卷
| 路径 | 说明 |
|---|---|
/var/www/html | Nextcloud 安装目录(含所有数据) |
/var/www/html/custom_apps | 自定义应用 |
/var/www/html/config | 配置文件 |
/var/www/html/data | 用户文件存储 |
/var/www/html/themes/<THEME> | 自定义主题 |
示例:挂载命名卷
bashdocker run -d \ -v nextcloud:/var/www/html \ # 主目录 -v nextcloud-apps:/var/www/html/custom_apps \ # 自定义应用 -v nextcloud-config:/var/www/html/config \ # 配置 -v nextcloud-data:/var/www/html/data \ # 用户数据 arm64v8/nextcloud
通过 docker exec 执行 occ 命令(需指定 www-data 用户):
bash# 示例:列出用户 docker exec --user www-data <容器ID> php occ user:list # Docker Compose 示例 docker compose exec --user www-data app php occ user:list
支持通过环境变量预配置 Nextcloud,无需手动初始化。
数据库配置
| 环境变量 | 说明 | 适用数据库 |
|---|---|---|
SQLITE_DATABASE | SQLite 数据库名 | SQLite |
MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORD、MYSQL_HOST | 数据库名、用户名、密码、主机 | MySQL/MariaDB |
POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_HOST | 数据库名、用户名、密码、主机 | PostgreSQL |
管理员与基础配置
| 环境变量 | 说明 | 默认值 |
|---|---|---|
NEXTCLOUD_ADMIN_USER | 管理员用户名 | - |
NEXTCLOUD_ADMIN_PASSWORD | 管理员密码 | - |
NEXTCLOUD_DATA_DIR | 数据目录路径 | /var/www/html/data |
NEXTCLOUD_TRUSTED_DOMAINS | 受信任域名(空格分隔) | - |
NEXTCLOUD_UPDATE | 是否启用安装/更新脚本(自定义命令时需设为 1) | 0 |
NEXTCLOUD_INIT_HTACCESS | 是否更新 htaccess | - |
Redis 配置(推荐)
用于缓存和避免文件锁定,需单独部署 Redis 容器:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
REDIS_HOST | Redis 主机 | - |
REDIS_HOST_PORT | Redis 端口 | 6379 |
REDIS_HOST_PASSWORD | Redis 密码 | - |
SMTP 配置
用于邮件发送(通知、密码重置等):
| 环境变量 | 说明 | 默认值 |
|---|---|---|
SMTP_HOST | SMTP 服务器主机 | - |
SMTP_SECURE | 加密方式(ssl/tls) | - |
SMTP_PORT | 端口 | 465(SSL)/25(非加密) |
SMTP_AUTHTYPE | 认证类型 | LOGIN |
SMTP_NAME | SMTP 用户名 | - |
SMTP_PASSWORD | SMTP 密码 | - |
MAIL_FROM_ADDRESS | 发件人地址 | - |
MAIL_DOMAIN | 发件人域名 | - |
PHP 与 Apache 参数
| 环境变量 | 说明 | 默认值 |
|---|---|---|
PHP_MEMORY_LIMIT | PHP 内存限制 | 512M |
PHP_UPLOAD_LIMIT | PHP 上传限制(post_max_size/upload_max_filesize) | 512M |
APACHE_BODY_LIMIT | Apache 请求体大小限制(字节) | 1073741824(1GiB) |
支持在关键阶段执行自定义脚本,脚本需放置在 /docker-entrypoint-hooks.d/<HOOK> 目录,需为 .sh 后缀且可执行。
| 钩子名称 | 执行时机 |
|---|---|
pre-installation | Nextcloud 安装前 |
post-installation | Nextcloud 安装后 |
pre-upgrade | Nextcloud 升级前 |
post-upgrade | Nextcloud 升级后 |
before-starting | Nextcloud 启动前 |
示例:挂载钩子脚本(Docker Compose)
yamlservices: app: image: arm64v8/nextcloud:stable volumes: - ./hooks/pre-installation:/docker-entrypoint-hooks.d/pre-installation - ./hooks/post-upgrade:/docker-entrypoint-hooks.d/post-upgrade
在反向代理后部署时,需配置 Nextcloud 信任代理并正确识别客户端 IP、协议和主机:
| 环境变量 | 说明 |
|---|---|
APACHE_DISABLE_REWRITE_IP | 禁用 IP 重写(启用后使用 X-Real-IP) |
TRUSTED_PROXIES | 受信任代理 IP(空格分隔,支持 CIDR) |
OVERWRITEHOST | 覆盖主机名(如 proxy.example.com:8080) |
OVERWRITEPROTOCOL | 覆盖协议(http/https) |
OVERWRITECLIURL | 覆盖 CLI URL(如 https://example.com) |
示例:Nginx 反向代理后配置
bashdocker run -d \ -p 8080:80 \ -e TRUSTED_PROXIES=192.168.1.100 \ # 代理服务器 IP -e OVERWRITEPROTOCOL=https \ # 代理使用 HTTPS -e OVERWRITEHOST=cloud.example.com \ # 代理域名 arm64v8/nextcloud
yamlvolumes: nextcloud: db: services: db: image: mariadb:10.6 restart: always command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW volumes: - db:/var/lib/mysql environment: -
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 arm64v8/nextcloud 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: