
schleyk/nextcloudschleyk/nextcloud是一个基于Alpine Linux 3.18的Docker镜像,用于部署Nextcloud——最广泛使用的本地文件共享和协作平台。该镜像集成nginx和PHP 8.2/8.3环境,支持Nextcloud 27/28/29版本,提供自动安装、数据持久化、安全配置及丰富扩展支持,适合个人或企业快速搭建私有云存储与协作系统。
安全提示:即使使用最新版本Nextcloud,也应定期更新容器以保障安全。
| 变量名 | 说明 | 默认值 |
|---|---|---|
| UID | Nextcloud用户ID | 991 |
| GID | Nextcloud用户组ID | 991 |
| UPLOAD_MAX_SIZE | 最大上传大小 | 10G |
| APC_SHM_SIZE | APCu内存大小 | 128M |
| OPCACHE_MEM_SIZE | OPCache内存大小(MB) | 2048 |
| MEMORY_LIMIT | PHP内存限制 | 512M |
| CRON_PERIOD | 定时任务间隔 | 5m |
| CRON_MEMORY_LIMIT | 定时任务PHP内存限制 | 1024m |
| TZ | 系统/日志时区 | Etc/UTC |
| ADMIN_USER | 管理员用户名(未设置则需网页配置) | none |
| ADMIN_PASSWORD | 管理员密码(未设置则需网页配置) | none |
| DOMAIN | 部署域名 | localhost |
| TRUSTED_PROXIES | 反向代理设置(如10.0.0.0/8 127.0.0.0/8) | 未设置 |
| 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会话文件存储 |
| /etc/ssl/private | LDAPs内部根CA证书存储 |
推荐使用外部数据库容器(如MariaDB),可通过Docker Hub官方mariadb镜像创建,并与Nextcloud容器链接。支持MySQL、PostgreSQL(需外部服务器)和sqlite3,其中sqlite3适合测试,生产环境建议使用MariaDB/MySQL。
创建容器(示例使用外部卷确保数据持久化,/docker为宿主机目录示例):
bashdocker run -d \ --name nextcloud \ -p 8888:8888 \ -e UID=1000 \ -e GID=1000 \ -e ADMIN_USER=admin \ -e ADMIN_PASSWORD=StrongPass123 \ -e DOMAIN=cloud.example.com \ -e DB_TYPE=mysql \ -e DB_NAME=nextcloud \ -e DB_USER=ncuser \ -e DB_PASSWORD=dbpass \ -e DB_HOST=mariadb \ -v /docker/nextcloud/data:/data \ -v /docker/nextcloud/config:/config \ -v /docker/nextcloud/apps2:/apps2 \ --link mariadb:mariadb \ schleyk/nextcloud
反向代理配置:需通过反向代理(如Nginx)暴露服务至互联网,具体配置参考官方文档。
若未设置ADMIN_USER和ADMIN_PASSWORD,可通过浏览器访问完成管理员账户配置。
docker pull schleyk/nextcloudRedis可提升性能,配置步骤:
config.php中添加:
php'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\APCu', 'redis' => array( 'host' => 'redis', // Redis容器名称/IP 'port' => 6379, // Redis端口 ),
[***]通过容器脚本快速执行occ命令:
bashdocker-compose exec nextcloud occ [command] # 示例:查看状态 docker-compose exec nextcloud occ status
出于安全考虑,即使使用最新版本Nextcloud,也应定期更新容器以修复基础镜像安全漏洞。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务