本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
⚠️⚠️⚠️ 此镜像由社区志愿者维护,适用于专家使用。如需快速轻松部署并支持全套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端口。启动容器命令:
$ docker run -d -p 8080:80 mips64le/nextcloud
现在可通过主机系统的http://localhost:8080/访问Nextcloud。
使用fpm镜像需额外的Web服务器(如nginx),将HTTP请求代理到容器的fpm端口。fpm容器暴露9000端口。通常无需将fpm端口映射到主机,而是通过Docker网络与Web服务器容器通信。
$ 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数据所在目录$ docker run -d \ -v nextcloud:/var/www/html \ mips64le/nextcloud
数据库:
/var/lib/mysql:MySQL/MariaDB数据/var/lib/postgresql/data:PostgreSQL数据$ 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>:自定义主题使用命名卷挂载所有这些目录的示例:
$ 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命令):
$ docker exec --user www-data 容器ID php occ
或使用docker compose:
$ 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(默认1073741824 [1GiB]):Apache请求体大小限制(字节,0为无限制)提供5个钩子文件夹,存放.sh可执行脚本(仅根目录文件执行):
pre-installation:安装前post-installation:安装后pre-upgrade:升级前post-upgrade:升级后before-starting:启动前示例:通过卷挂载主机脚本:
... 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。
volumes: 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),无加密,运行前设置数据库密码。
volumes: 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429