⚠️⚠️⚠️ 此镜像由社区志愿者维护,适用于专家使用。如需快速轻松部署并支持全套Nextcloud Hub功能,请使用Nextcloud GmbH维护的Nextcloud All-in-One Docker容器。
维护者:
Nextcloud社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接警告:此镜像在mips64le架构上不受支持
问题反馈地址:
[***]
支持的架构:(更多信息)
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镜像提供支持。如需专业支持,可成为企业客户或使用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 mips64le/nextcloud
现在可通过主机系统的http://localhost:8080/访问Nextcloud。
使用fpm镜像需额外的Web服务器(如nginx),将HTTP请求代理到容器的fpm端口。fpm容器暴露9000端口。通常无需将fpm端口映射到主机,而是通过Docker网络与Web服务器容器通信。
console$ docker run -d mips64le/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守护进程将数据存储在/var/lib/docker/volumes/...目录,即使容器崩溃、停止或删除,数据仍保留。
升级和备份时应使用命名卷或挂载主机目录。需为数据库容器和Nextcloud分别设置卷:
Nextcloud:
/var/www/html/:所有Nextcloud数据所在目录console$ docker run -d \ -v nextcloud:/var/www/html \ mips64le/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:用户文件数据/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> \ mips64le/nextcloud
在/var/www/html下挂载额外卷时,需注意:
/var/www/html之外的位置。注意:
/var/www/html目录中的数据在安装和升级期间可能被覆盖/删除,除非在upgrade.exclude中列出。***支持的额外卷已在列表中,自定义卷需自行添加。建议将自定义存储卷挂载到/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_USER:数据库用户名MYSQL_PASSWORD:数据库用户密码MYSQL_HOST:数据库服务器主机名PostgreSQL:
POSTGRES_DB:数据库名称POSTGRES_USER:数据库用户名POSTGRES_PASSWORD:数据库用户密码POSTGRES_HOST:数据库服务器主机名作为通过环境变量传递敏感信息的替代方式,可在上述环境变量后附加
_FILE,使初始化脚本从容器内的文件加载值。
NEXTCLOUD_ADMIN_USER:管理员用户名(需与密码同时设置)NEXTCLOUD_ADMIN_PASSWORD:管理员密码(需与用户名同时设置)NEXTCLOUD_DATA_DIR(默认:/var/www/html/data):用户文件存储目录NEXTCLOUD_TRUSTED_DOMAINS(默认未设置):空格分隔的受信任域名列表NEXTCLOUD_UPDATE(默认:0):使用自定义命令时设为1启用安装/更新NEXTCLOUD_INIT_HTACCESS(默认未设置):设为true启用初始化时更新htaccessREDIS_HOST(默认未设置):Redis容器名称REDIS_HOST_PORT(默认:6379):Redis端口(仅用于非标准端口外部服务器)REDIS_HOST_PASSWORD(默认未设置):Redis密码(推荐使用Redis防止文件锁定)SMTP_HOST:SMTP服务器主机名SMTP_SECURE(默认空):ssl(SSL)或tls(STARTTLS)SMTP_PORT(默认:SSL为465,非安全为25):SMTP端口(STARTTLS推荐587)SMTP_AUTHTYPE(默认:LOGIN):认证方法(无需认证时用PLAIN)SMTP_NAME:认证用户名SMTP_PASSWORD:认证密码MAIL_FROM_ADDRESS:发件人本地部分MAIL_DOMAIN:发件人域名SMTP_HOST、MAIL_FROM_ADDRESS和MAIL_DOMAIN)S3兼容存储:
OBJECTSTORE_S3_BUCKET:存储桶名称OBJECTSTORE_S3_REGION:区域OBJECTSTORE_S3_HOST:服务器主机名OBJECTSTORE_S3_PORT:服务器端口OBJECTSTORE_S3_KEY/OBJECTSTORE_S3_SECRET:访问密钥/密钥OBJECTSTORE_S3_STORAGE_CLASS:存储类别OBJECTSTORE_S3_SSL(默认:true):是否使用SSLUSEPATH_STYLE、LEGACYAUTH、OBJECT_PREFIX、AUTOCREATE、SSE_C_KEYOpenStack Swift存储:
OBJECTSTORE_SWIFT_URL:身份端点OBJECTSTORE_SWIFT_USER_NAME/PASSWORD:用户名/密码OBJECTSTORE_SWIFT_PROJECT_NAME:项目名称OBJECTSTORE_SWIFT_REGION:区域OBJECTSTORE_SWIFT_CONTAINER_NAME:容器名称AUTOCREATE、USER_DOMAIN、PROJECT_DOMAIN、SERVICE_NAMEPHP_MEMORY_LIMIT(默认512M):脚本最大内存限制PHP_UPLOAD_LIMIT(默认512M):上传文件大小限制APACHE_BODY_LIMIT(默认*** [1GiB]):Apache请求体大小限制(字节,0为无限制)提供5个钩子文件夹,存放.sh可执行脚本(仅根目录文件执行):
pre-installation:安装前post-installation:安装后pre-upgrade:升级前post-upgrade:升级后before-starting:启动前示例:通过卷挂载主机脚本:
yaml... app: image: mips64le/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。如需从受信任代理获取主机/协议/客户端IP:
APACHE_DISABLE_REWRITE_IP=1:禁用IP重写TRUSTED_PROXIES="代理IP/CIDR 列表":设置受信任代理或使用固定覆盖参数:
OVERWRITEHOST:代理主机名(可带端口)OVERWRITEPROTOCOL:协议(http/https)OVERWRITECLIURL:CLI访问URL(如[***])OVERWRITEWEBROOT:绝对路径OVERWRITECONDADDR:基于远程地址的覆盖正则表达式使用apache镜像和MariaDB,卷持久化数据,无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: mips64le/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/访问。
需配合nginx(静态文件访问通过volumes_from),无加密,运行前设置数据库密码。
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: mips64le/nextcloud:fpm restart: always links: - db volumes: - nextcloud:/var/www/html environment: - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db web: image: nginx restart: always ports: - 8080:80 links: - app
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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