Docker Compose一键拉起MariaDB、Redis和Nextcloud服务,需通过docker-compose.yml统一编排,确保网络互通、卷挂载合理(如./db、./html、./config及/mnt/nas/nextcloud-data),正确设置MYSQL_HOST=db和REDIS_HOST=redis环境变量,并按步骤配置PHP参数、Redis持久化与Nginx反代及可信域名。

用Docker Compose一键拉起基础服务
推荐使用docker-compose.yml统一编排,包含MariaDB、Redis和Nextcloud三个容器。关键点在于网络互通与卷挂载清晰:数据库数据存./db,Nextcloud主程序和配置分别挂载./html和./config,真实文件存储务必映射到大容量硬盘路径(如/mnt/nas/nextcloud-data),避免容器内磁盘写满。
环境变量中必须设置MYSQL_HOST=db和REDIS_HOST=redis,这是容器间通过服务名通信的基础。若用树莓派等ARM设备,注意选用arm64v8/nextcloud或arm32v7/nextcloud镜像。
启用Redis缓存的两步配置
第一步是Docker层打通:在app服务的environment中添加REDIS_HOST=redis,如有密码则加REDIS_HOST_PASSWORD=your_pass;第二步是Nextcloud应用层生效:进入容器执行docker exec -it nextcloud bash,编辑/var/www/html/config/config.php,插入以下数组段落:
'memcache.local' => '\OC\Memcache\APCu','memcache.distributed' => '\OC\Memcache\Redis','memcache.locking' => '\OC\Memcache\Redis','redis' => [ 'host' => 'redis', 'port' => 6379, 'password' => 'your_pass' ],
保存后重启Nextcloud容器,访问管理后台的“状态”页,应显示“Redis 缓存已启用”且锁机制正常。
性能与安全的关键调优项
PHP限制直接影响大文件上传和批量操作:在容器内编辑/usr/local/etc/php/conf.d/nextcloud.ini,设upload_max_filesize=16G、post_max_size=16G、max_execution_time=3600;Redis建议开启AOF持久化(在redis服务command中加--appendonly yes),防止意外断电丢失会话和锁状态。
生产环境务必禁用HTTP直连,用Nginx Proxy Manager反代并自动申请Let’s Encrypt证书;可信域名NEXTCLOUD_TRUSTED_DOMAINS需填入实际访问地址(如cloud.example.com 192.168.1.100),空格分隔,不可遗漏内网IP。


















