manlongdan/library_nextcloud⚠️⚠️⚠️ 此镜像由社区志愿者维护,专为专家级用户设计。如需快速部署并支持全套Nextcloud Hub功能,请使用由Nextcloud GmbH维护的Nextcloud All-in-One容器。
维护者:
Nextcloud社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
30.0.17-apache, 30.0-apache, 30-apache, 30.0.17, 30.0, 30
30.0.17-fpm, 30.0-fpm, 30-fpm
30.0.17-fpm-alpine, 30.0-fpm-alpine, 30-fpm-alpine
31.0.10-apache, 31.0-apache, 31-apache, stable-apache, production-apache, 31.0.10, 31.0, 31, stable, production
31.0.10-fpm, 31.0-fpm, 31-fpm, stable-fpm, production-fpm
31.0.10-fpm-alpine, 31.0-fpm-alpine, 31-fpm-alpine, stable-fpm-alpine, production-fpm-alpine
32.0.1-apache, 32.0-apache, 32-apache, apache, 32.0.1, 32.0, 32, latest
32.0.1-fpm, 32.0-fpm, 32-fpm, fpm
32.0.1-fpm-alpine, 32.0-fpm-alpine, 32-fpm-alpine, fpm-alpine
问题反馈地址:
[***]
支持的架构:(更多信息)
amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
镜像制品详情:
repo-info仓库的repos/nextcloud/目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images仓库的library/nextcloud标签
official-images仓库的library/nextcloud文件 (历史记录)
本文档来源:
docs仓库的nextcloud/目录 (历史记录)
你的所有数据的安全家园。通过任何设备按你的方式访问和共享文件、日历、联系人、邮件等。
Nextcloud.com
此Docker微服务镜像由Nextcloud社区开发和维护。Nextcloud GmbH不为此Docker镜像提供支持。如需专业支持,你可以成为企业客户或使用Nextcloud All-in-One。
此镜像设计用于微服务环境。你可以选择两种版本的镜像:
apache标签包含完整的Nextcloud安装,包括Apache Web服务器。它易于使用,能快速启动。这也是latest标签和未指定进一步说明的版本标签的默认选项。
第二个选项是fpm容器。它基于php-fpm镜像,运行FastCGI进程来提供Nextcloud页面。使用此镜像时,必须与能将HTTP请求代理到容器FastCGI端口的任何Web服务器结合使用。
apache镜像包含Web服务器并暴露80端口。启动容器的命令如下:
console$ docker run -d -p 8080:80 nextcloud
现在你可以从主机系统通过http://localhost:8080/访问Nextcloud。
使用fpm镜像需要额外的Web服务器,例如nginx,它能将HTTP请求代理到容器的fpm端口。fpm连接的容器暴露9000端口。在大多数情况下,你可能希望使用另一个容器或主机作为代理。如果使用主机,可以直接通过9000端口访问Nextcloud容器;如果使用另一个容器,确保它们添加到同一Docker网络(通过docker run --network <NAME> ...或compose.yaml文件)。在这两种情况下,都不需要将fpm端口映射到主机。
console$ docker run -d nextcloud:fpm
由于FastCGI进程无法提供静态文件(样式表、图像等),Web服务器需要访问这些文件。这可以通过volumes-from选项实现。你可以在Docker Compose部分找到更多信息。
默认情况下,此容器使用SQLite存储数据,但Nextcloud设置向导(首次运行时出现)允许连接到现有的MySQL/MariaDB或PostgreSQL数据库。你也可以链接数据库容器,例如--link my-mysql:mysql,然后在设置时使用mysql作为数据库主机。更多信息在Docker Compose部分。
Nextcloud安装和所有数据库之外的数据(文件上传等)存储在未命名Docker卷/var/www/html中。Docker守护进程会将该数据存储在Docker目录/var/lib/docker/volumes/...中。这意味着即使容器崩溃、停止或删除,你的数据也会保存。
升级和备份时应使用命名Docker卷或挂载的主机目录。为此,你需要一个用于数据库容器的卷和一个用于Nextcloud的卷。
Nextcloud:
/var/www/html/文件夹,所有Nextcloud数据存放于此console$ docker run -d \ -v nextcloud:/var/www/html \ nextcloud
数据库:
/var/lib/mysql MySQL/MariaDB数据/var/lib/postgresql/data PostgreSQL数据console$ docker run -d \ -v db:/var/lib/mysql \ mariadb:10.6
如果需要对单个文件进行细粒度访问,可以为数据、配置、主题和自定义应用挂载额外卷。data、config文件存储在/var/www/html/内的相应子文件夹中。应用分为核心apps(随Nextcloud一起提供,无需处理)和custom_apps文件夹。如果使用自定义主题,它将位于themes子文件夹中。
可挂载为卷的文件夹概述:
/var/www/html 主文件夹,升级时需要/var/www/html/custom_apps 已安装/修改的应用/var/www/html/config 本地配置/var/www/html/data Nextcloud的实际数据/var/www/html/themes/<YOUR_CUSTOM_THEME> 主题/品牌如果要为所有这些使用命名卷,命令如下:
console$ docker run -d \ -v nextcloud:/var/www/html \ -v apps:/var/www/html/custom_apps \ -v config:/var/www/html/config \ -v data:/var/www/html/data \ -v theme:/var/www/html/themes/<YOUR_CUSTOM_THEME> \ nextcloud
如果在/var/www/html下挂载额外卷,应考虑:
/var/www/html之外的位置。请注意,除非在upgrade.exclude中列出,否则主文件夹(
/var/www/html)内的数据在安装和升级期间会被覆盖/删除。官方支持的额外卷已在该列表中,但自定义卷需要你自行添加。建议将自定义存储卷挂载到/var/www/html之外的位置,并尽可能设为只读,以避免此调整。如果必须在/var/www/html下挂载,你可以构建包含修改后的/upgrade.exclude文件的自定义镜像,以纳入你的自定义卷。
要使用Nextcloud命令行界面(即occ命令):
console$ docker exec --user www-data 容器ID php occ
或使用docker compose:
console$ docker compose exec --user www-data app php occ
Nextcloud镜像支持通过环境变量自动配置。你可以预先配置首次运行时安装页面上询问的所有内容。要启用自动配置,通过以下环境变量指定数据库连接。你必须为给定数据库指定所有环境变量,否则数据库环境变量默认为SQLITE。仅使用一种数据库类型!
SQLite:
SQLITE_DATABASE 使用SQLite的数据库名称MySQL/MariaDB:
MYSQL_DATABASE 使用MySQL/MariaDB的数据库名称MYSQL_USER 使用MySQL/MariaDB的数据库用户名MYSQL_PASSWORD 使用MySQL/MariaDB的数据库用户密码MYSQL_HOST 使用MySQL/MariaDB的数据库服务器主机名PostgreSQL:
POSTGRES_DB 使用PostgreSQL的数据库名称POSTGRES_USER 使用PostgreSQL的数据库用户名POSTGRES_PASSWORD 使用PostgreSQL的数据库用户密码POSTGRES_HOST 使用PostgreSQL的数据库服务器主机名作为通过环境变量传递敏感信息的替代方法,可以在上述环境变量后附加_FILE,使初始化脚本从容器中存在的文件加载这些变量的值。详见下面的Docker Secrets部分。
如果设置了任何一组值(即MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORD、MYSQL_HOST全部设置),首次运行时安装页面将不会询问这些内容。通过为数据库类型设置所有变量完成配置后,你还可以通过设置管理员用户和密码(仅在两者都设置时有效)来配置Nextcloud实例:
NEXTCLOUD_ADMIN_USER Nextcloud管理员用户名NEXTCLOUD_ADMIN_PASSWORD Nextcloud管理员密码你可以设置数据目录,否则使用默认值:
NEXTCLOUD_DATA_DIR(默认:/var/www/html/data)配置Nextcloud存储用户所有文件的数据目录也可以通过环境变量设置一个或多个可信域。它们将在安装后添加到配置中:
NEXTCLOUD_TRUSTED_DOMAINS(默认未设置)可选的空格分隔的域名列表安装和更新脚本仅在使用默认命令(apache-foreground或php-fpm)时触发。如果使用自定义命令,必须通过以下方式启用安装/更新:
NEXTCLOUD_UPDATE(默认:0)你可能需要确保每次容器更新后htaccess是最新的。特别是在多个Swarm节点上,任何差异都会导致服务器无法使用:
NEXTCLOUD_INIT_HTACCESS(默认未设置)设为true可在容器初始化后运行occ maintenance:update:htaccess如果要使用Redis,必须在你的设置/Compose文件中创建单独的Redis容器。要通知Nextcloud有关Redis容器的信息,请传入以下参数:
REDIS_HOST(默认未设置)Redis容器名称REDIS_HOST_PORT(默认:6379)Redis的可选端口,仅用于运行在非标准端口的外部Redis服务器REDIS_HOST_PASSWORD(默认未设置)Redis密码建议使用Redis以防止文件锁定问题。更多说明见示例。
要使用外部SMTP服务器,必须提供连接详细信息。配置Nextcloud使用SMTP需添加:
SMTP_HOST(默认未设置)SMTP服务器主机名SMTP_SECURE(默认空)设为ssl使用SSL,或tls使用STARTTLSSMTP_PORT(默认:SSL为465,非安全连接为25)SMTP连接的可选端口,STARTTLS可使用587SMTP_AUTHTYPE(默认:LOGIN)认证方法,无需认证时使用PLAINSMTP_NAME(默认空)认证用户名SMTP_PASSWORD(默认空)认证密码MAIL_FROM_ADDRESS(默认未设置)Nextcloud发送邮件中“发件人”字段的本地部分MAIL_DOMAIN(默认未设置)邮件使用的域名(不同于Nextcloud安装的域名)应用配置至少需要设置SMTP_HOST、MAIL_FROM_ADDRESS和MAIL_DOMAIN。
有关配置SMTP的其他值,请查看Nextcloud文档。
要使用外部S3兼容对象存储作为主存储,设置以下变量:
OBJECTSTORE_S3_BUCKET Nextcloud存储数据的存储桶名称OBJECTSTORE_S3_REGION S3存储桶所在的区域OBJECTSTORE_S3_HOST 对象存储服务器的主机名OBJECTSTORE_S3_PORT 对象存储服务器的端口探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务