⚠️⚠️⚠️ 此镜像由社区志愿者维护,专为专家用户设计。如需快速部署并支持全套Nextcloud Hub功能,请使用由Nextcloud GmbH维护的Nextcloud All-in-One Docker容器。
维护者:
Nextcloud社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
Dockerfile链接30.0.16-fpm-alpine, 30.0-fpm-alpine, 30-fpm-alpine
31.0.9-fpm-alpine, 31.0-fpm-alpine, 31-fpm-alpine, stable-fpm-alpine, production-fpm-alpine
32.0.0-fpm-alpine, 32.0-fpm-alpine, 32-fpm-alpine, fpm-alpine
问题反馈:
[***]
支持的架构:(更多信息)
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x
镜像 artifact 详情:
repo-info 仓库的 repos/nextcloud/ 目录(历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/nextcloud 标签
official-images 仓库的 library/nextcloud 文件(历史记录)
本描述来源:
docs 仓库的 nextcloud/ 目录(历史记录)
Nextcloud 是一个安全的个人数据中心,可从任何设备访问和共享文件、日历、联系人、邮件等,完全由您掌控。
Nextcloud.com
此 Docker 微服务镜像由 Nextcloud 社区开发和维护。Nextcloud GmbH 不为此 Docker 镜像提供支持。如需专业支持,您可以成为企业客户或使用AIO。
本镜像设计用于微服务环境,提供两种版本供选择:
apache 标签包含完整的 Nextcloud 安装,内置 Apache Web 服务器,易于使用,可快速启动。latest 标签及未指定后缀的版本标签默认使用此版本。
fpm 标签基于 php-fpm 镜像,运行 FastCGI 进程处理 Nextcloud 请求,需配合外部 Web 服务器(如 Nginx)使用。
apache 镜像内置 Web 服务器,暴露 80 端口。启动容器命令:
console$ docker run -d -p 8080:80 arm32v6/nextcloud
现在可通过 http://localhost:8080/ 访问 Nextcloud。
fpm 镜像需配合外部 Web 服务器(如 Nginx),通过 FastCGI 端口 9000 代理请求。因 FastCGI 无法处理静态文件(样式表、图片等),Web 服务器需访问容器内的静态文件(可通过 volumes-from 实现,详见 Docker Compose 部分)。
启动 fpm 容器(无需映射端口到主机):
console$ docker run -d arm32v6/nextcloud:fpm
默认情况下,容器使用 SQLite 存储数据,但 Nextcloud 安装向导(首次运行时显示)支持连接现有 MySQL/MariaDB 或 PostgreSQL 数据库。也可链接数据库容器(如 --link my-mysql:mysql),安装时使用 mysql 作为数据库主机。更多信息见 Docker Compose 部分。
Nextcloud 安装文件及数据库外的所有数据(如上传文件)存储在***卷 /var/www/html 中。为便于升级和备份,建议使用命名卷或主机目录挂载:
/var/www/html/:存储 Nextcloud 所有数据console$ docker run -d \ -v nextcloud:/var/www/html \ arm32v6/nextcloud
/var/lib/mysql/var/lib/postgresql/dataconsole$ docker run -d \ -v db:/var/lib/mysql \ mariadb:10.6
如需精细控制文件访问,可挂载以下子目录:
/var/www/html/custom_apps:自定义应用/var/www/html/config:配置文件/var/www/html/data:用户数据/var/www/html/themes/<自定义主题名>:主题文件示例(挂载所有子目录):
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/<自定义主题名> \ arm32v6/nextcloud
在 /var/www/html 下挂载自定义卷时,需确保 upgrade.exclude 包含需保留的文件/目录,或挂载到 /var/www/html 外部。升级时 /var/www/html 内未在 upgrade.exclude 中的文件可能被覆盖。
通过 occ 命令管理 Nextcloud:
console$ docker exec --user www-data 容器ID php occ
Docker Compose 环境:
console$ docker compose exec --user www-data app php occ
可通过环境变量预配置安装参数,支持 SQLite、MySQL/MariaDB、PostgreSQL 数据库,以及管理员账户、数据目录、可信域名等。
SQLite:
SQLITE_DATABASE:SQLite 数据库名MySQL/MariaDB:
MYSQL_DATABASE:数据库名MYSQL_USER:数据库用户名MYSQL_PASSWORD:数据库密码MYSQL_HOST:数据库主机名PostgreSQL:
POSTGRES_DB:数据库名POSTGRES_USER:数据库用户名POSTGRES_PASSWORD:数据库密码POSTGRES_HOST:数据库主机名NEXTCLOUD_ADMIN_USER:管理员用户名(需与密码同时设置)NEXTCLOUD_ADMIN_PASSWORD:管理员密码NEXTCLOUD_DATA_DIR:数据目录(默认:/var/www/html/data)NEXTCLOUD_TRUSTED_DOMAINS:可信域名列表(空格分隔,默认未设置)NEXTCLOUD_UPDATE:启用安装/升级(默认:0,自定义命令时需设为 1)NEXTCLOUD_INIT_HTACCESS:初始化时更新 htaccess(设为 true 启用)需独立 Redis 容器,通过以下变量配置:
REDIS_HOST:Redis 容器名REDIS_HOST_PORT:Redis 端口(默认:6379)REDIS_HOST_PASSWORD:Redis 密码(默认未设置)SMTP_HOST:SMTP 服务器主机名SMTP_SECURE:加密方式(ssl 或 tls,默认空)SMTP_PORT:端口(默认:SSL 为 465,非加密为 25)SMTP_AUTHTYPE:认证方式(默认:LOGIN)SMTP_NAME:SMTP 用户名SMTP_PASSWORD:SMTP 密码MAIL_FROM_ADDRESS:发件人地址前缀MAIL_DOMAIN:发件人域名PHP_MEMORY_LIMIT:PHP 内存限制(默认 512M)PHP_UPLOAD_LIMIT:上传文件大小限制(默认 512M)APACHE_BODY_LIMIT:Apache 请求体大小限制(默认 *** [1GiB],0 为无限制)支持 5 种钩子(脚本需为 .sh 格式且可执行,存放于 /docker-entrypoint-hooks.d 对应子目录):
pre-installation:安装前执行post-installation:安装后执行pre-upgrade:升级前执行post-upgrade:升级后执行before-starting:启动前执行示例(Docker Compose 挂载钩子目录):
yamlservices: app: image: arm32v6/nextcloud:stable volumes: - ./app-hooks/pre-installation:/docker-entrypoint-hooks.d/pre-installation - ./app-hooks/post-installation:/docker-entrypoint-hooks.d/post-installation - ./app-hooks/pre-upgrade:/docker-entrypoint-hooks.d/pre-upgrade - ./app-hooks/post-upgrade:/docker-entrypoint-hooks.d/post-upgrade - ./app-hooks/before-starting:/docker-entrypoint-hooks.d/before-starting
apache 镜像默认信任私有网络(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)的 X-Real-IP 头。如需配置反向代理,可通过以下变量:
APACHE_DISABLE_REWRITE_IP:设为 1 禁用 IP 重写TRUSTED_PROXIES:可信代理列表(空格分隔,支持 CIDR)OVERWRITEHOST、OVERWRITEPROTOCOL 等:手动覆盖代理主机、协议等(详见 Nextcloud 文档)推荐使用 compose.yaml 配置完整环境(包含数据库、持久化卷等)。
适用于内部网络,无 SSL 加密(建议配合外部代理使用)。需替换 MYSQL_ROOT_PASSWORD 和 MYSQL_PASSWORD 为实际值。
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: - MYSQL_ROOT_PASSWORD= - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: arm32v6/nextcloud restart: always ports: - 8080:80 links: - db volumes: - nextcloud:/var/www/html environment: - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db
启动命令:docker compose up -d,通过 http://localhost:8080/ 访问。
注意:完整文档超出 Docker Hub 长度限制,更多详情见 GitHub。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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