
本镜像为 wonderfall/nextcloud 的分支版本,因原作者停止支持而由个人维护。基于Alpine Linux构建,集成nginx和PHP 7.1,添加了HTTP/2支持,用于提供安全的个人数据存储与同步服务。注意:此镜像为个人使用目的创建,非官方版本,支持不规律,欢迎通过GitHub提交PR或issue(Docker Hub评论可能无法查看)。
除
daily标签外,其他标签每周构建一次。为保障安全,即使使用最新版本,也建议定期更新容器。
| 变量名 | 说明 |
|---|---|
NEXTCLOUD_VERSION | Nextcloud版本号 |
GNU_LIBICONV_VERSION | GNU Libiconv版本号 |
GPG_nextcloud | 签名密钥指纹 |
| 变量名 | 说明 | 默认值 |
|---|---|---|
UID | Nextcloud用户ID | 991 |
GID | Nextcloud用户组ID | 991 |
UPLOAD_MAX_SIZE | 最大上传文件大小 | 10G |
APC_SHM_SIZE | APCu共享内存大小 | 128M |
OPCACHE_MEM_SIZE | OPCache内存大小(MB) | 128 |
MEMORY_LIMIT | PHP内存限制 | 512M |
CRON_PERIOD | Cron任务执行间隔 | 15m |
CRON_MEMORY_LIMIT | Cron任务PHP内存限制 | 1024m |
TZ | 系统/日志时区 | Etc/UTC |
ADMIN_USER | 管理员用户名(不设置则通过网页配置) | none |
ADMIN_PASSWORD | 管理员密码(不设置则通过网页配置) | none |
DOMAIN | 部署域名 | localhost |
DB_TYPE | 数据库类型(sqlite3/mysql/pgsql) | sqlite3 |
DB_NAME | 数据库名称 | none |
DB_USER | 数据库用户名 | none |
DB_PASSWORD | 数据库密码 | none |
DB_HOST | 数据库主机地址 | none |
管理员密码请务必设置为强密码!
| 卷路径 | 用途 |
|---|---|
/data | Nextcloud数据存储目录 |
/config | config.php配置文件目录 |
/apps2 | 下载的应用存储目录 |
/nextcloud/themes | 主题文件目录 |
/php/session | PHP会话文件目录 |
可使用主机、外部服务器或容器化数据库。推荐使用MariaDB容器,示例如下:
bashdocker run -d --name db_nextcloud \ -v /docker/nextcloud/db:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=supersecretpassword \ -e MYSQL_DATABASE=nextcloud \ -e MYSQL_USER=nextcloud \ -e MYSQL_PASSWORD=supersecretpassword \ mariadb:10
bash# 拉取镜像 docker pull wonderfall/nextcloud:12.0 && docker pull mariadb:10 # 创建数据库容器 docker run -d --name db_nextcloud \ -v /docker/nextcloud/db:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=supersecretpassword \ -e MYSQL_DATABASE=nextcloud \ -e MYSQL_USER=nextcloud \ -e MYSQL_PASSWORD=supersecretpassword \ mariadb:10 # 创建Nextcloud容器 docker run -d --name nextcloud \ --link db_nextcloud:db_nextcloud \ -v /docker/nextcloud/data:/data \ -v /docker/nextcloud/config:/config \ -v /docker/nextcloud/apps:/apps2 \ -v /docker/nextcloud/themes:/nextcloud/themes \ -e UID=1000 -e GID=1000 \ -e UPLOAD_MAX_SIZE=10G \ -e APC_SHM_SIZE=128M \ -e OPCACHE_MEM_SIZE=128 \ -e CRON_PERIOD=15m \ -e TZ=Etc/UTC \ -e ADMIN_USER=mrrobot \ -e ADMIN_PASSWORD=supercomplicatedpassword \ -e DOMAIN=cloud.example.com \ -e DB_TYPE=mysql \ -e DB_NAME=nextcloud \ -e DB_USER=nextcloud \ -e DB_PASSWORD=supersecretpassword \ -e DB_HOST=db_nextcloud \ wonderfall/nextcloud:12.0
若未设置
ADMIN_USER和ADMIN_PASSWORD,可通过浏览器完成管理员账户配置。
推荐使用docker-compose管理容器,以下为示例配置(根据需求调整):
yamlversion: '2' networks: default: driver: bridge services: nextcloud: image: wonderfall/nextcloud:12.0 depends_on: - nextcloud-db # 使用MySQL时依赖 # - solr # 使用Nextant时依赖 # - redis # 使用Redis时依赖 environment: - UID=1000 - GID=1000 - UPLOAD_MAX_SIZE=10G - APC_SHM_SIZE=128M - OPCACHE_MEM_SIZE=128 - CRON_PERIOD=15m - TZ=Europe/Berlin - ADMIN_USER=admin # 不设置则通过浏览器配置 - ADMIN_PASSWORD=admin # 不设置则通过浏览器配置 - DOMAIN=localhost - DB_TYPE=mysql - DB_NAME=nextcloud - DB_USER=nextcloud - DB_PASSWORD=supersecretpassword - DB_HOST=nextcloud-db volumes: - /docker/nextcloud/data:/data - /docker/nextcloud/config:/config - /docker/nextcloud/apps:/apps2 - /docker/nextcloud/themes:/nextcloud/themes # MySQL数据库服务 nextcloud-db: image: mariadb:10 volumes: - /docker/nextcloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=supersecretpassword - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=supersecretpassword # Nextant搜索服务(可选) # solr: # image: solr:6-alpine # container_name: solr # volumes: # - /docker/nextcloud/solr:/opt/solr/server/solr/mycores # entrypoint: # - docker-entrypoint.sh # - solr-precreate # - nextant # Redis缓存服务(可选) # redis: # image: redis:alpine # container_name: redis # volumes: # - /docker/nextcloud/redis:/data
部署步骤:
docker-compose.ymldocker-compose up -d nextcloud-db(等待15秒数据库初始化)docker-compose up -ddocker-compose pull && docker-compose up -d需基于Alpine-ARM镜像(如orax/alpine-armhf:edge)自行构建。
在管理员面板中,建议将任务调度方式从AJAX cron切换为cron(系统cron)。
已内置PHP Redis扩展,部署Redis容器后,在config.php中添加:
php'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\APCu', 'redis' => array( 'host' => 'redis', 'port' => 6379, ),
部署Solr容器后,安装Nextant应用,在管理员面板的“附加设置”中设置Solr地址为http://solr:8983/solr。
通过以下命令执行Nextcloud控制台命令:
bashdocker exec -ti nextcloud occ 命令
强烈建议通过HTTPS访问Nextcloud,推荐使用wonderfall/reverse镜像(基于nginx,支持Let's Encrypt自动证书)。
在Nextcloud服务中添加标签:
yamlnextcloud: ... labels: - reverse.frontend.domain=cloud.domain.tld # 域名 - reverse.backend.port=8888 # 后端端口 - reverse.frontend.ssl=true # 启用SSL - reverse.frontend.ssltype=ec384 # SSL类型 - reverse.frontend.hsts=false # HSTS配置 - reverse.frontend.headers=false # 头信息配置
添加反向代理服务:
yamlreverse: image: wonderfall/reverse container_name: reverse ports: - "80:8080" - "443:8443" environment: - EMAIL=admin@domain.tld # Let's Encrypt邮箱 volumes: - /docker/reverse/ssl:/nginx/ssl - /var/run/docker.sock:/var/run/docker.sock depends_on: - nextcloud
拉取新版本镜像后,按部署步骤重新创建容器。外部卷确保数据不会丢失。若Nextcloud执行全量升级,应用可能被禁用(12.0.x版本后升级会自动启用应用)。
以下是 jricks92/nextcloud 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务