Docker 搭建 Nextcloud 搭配 Redis 和 MariaDB
此配置提供了完整的 Nextcloud 私有云解决方案,结合了 MariaDB 数据库和 Redis 缓存,适合作为家庭或小型企业 NAS 使用。所有数据(Nextcloud、MariaDB、Redis)均通过 Docker 卷持久化存储,确保容器重启后数据不丢失。完成 Nextcloud 的初始设置。确保系统已安装 Docker 和 Docker Compose。服务启动后,通过浏览器访问。
·
Docker 搭建 Nextcloud 搭配 Redis 和 MariaDB
准备工作 确保系统已安装 Docker 和 Docker Compose。
一、创建如下目录
~/nas/
├── docker-compose.yml
├── env
│ ├── mariadb.env
│ └── nextcloud.env
├── logs
│ ├── mariadb
│ ├── nextcloud
│ └── redis
├── mariadb
│ └── data
├── nextcloud
│ ├── app
│ ├── config
│ └── data
└── redis
└── data
14 directories, 3 files
docker-compose.yml 文件:
x-logging: &default-logging
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
services:
mariadb:
image: mariadb:10.6.24
container_name: nas-mariadb
restart: always
<<: *default-logging
command:
- --transaction-isolation=READ-COMMITTED
- --binlog-format=ROW
env_file:
- ./env/mariadb.env
volumes:
- ./mariadb/data:/var/lib/mysql
networks:
- nas-net
redis:
image: redis:8.0
container_name: nas-redis
restart: always
<<: *default-logging
networks:
- nas-net
nextcloud:
image: nextcloud:29.0.6
container_name: nas-nextcloud
restart: always
<<: *default-logging
depends_on:
- mariadb
- redis
ports:
- "8080:80"
env_file:
- ./env/mariadb.env
- ./env/nextcloud.env
environment:
MYSQL_HOST: mariadb
REDIS_HOST: redis
volumes:
- ./nextcloud/config:/var/www/html/config
- ./nextcloud/data:/var/www/html/data
networks:
- nas-net
networks:
nas-net:
driver: bridge
mariadb.env 文件:
需要将password更改成自己的密码
MYSQL_ROOT_PASSWORD=PASSWORD
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_PASSWORD=PASSWORD
mariadb.env文件留空,用于加入IP地址白名单
确保文件权限:
drwxr-xr-x 2 user user 4096 Jan 24 07:08 env/
drwxr-xr-x 3 dnsmasq systemd-journal 4096 Jan 24 07:06 mariadb/
drwxr-xr-x 4 www-data www-data 4096 Jan 24 08:17 nextcloud/
启动服务 在包含 docker-compose.yml 文件的目录中运行以下命令:
docker compose up -d
访问 Nextcloud 服务启动后,通过浏览器访问 http://localhost:8080 完成 Nextcloud 的初始设置。在设置过程中,使用以下数据库信息:
- 数据库用户:
nextcloud - 数据库密码:
nextcloud_password - 数据库名称:
nextcloud - 数据库主机:
mariadb
配置 Redis 缓存 Nextcloud 安装完成后,通过以下步骤启用 Redis 缓存:
- 编辑 Nextcloud 的
config/config.php文件。 - 添加以下配置:
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => [
'host' => 'redis',
'port' => 6379,
],
数据持久化 所有数据(Nextcloud、MariaDB、Redis)均通过 Docker 卷持久化存储,确保容器重启后数据不丢失。
优化建议
- 为生产环境配置 HTTPS(可通过反向代理如 Nginx 实现)。
- 定期备份 Docker 卷中的数据。
- 根据硬件资源调整 MariaDB 和 Redis 的配置参数。
此配置提供了完整的 Nextcloud 私有云解决方案,结合了 MariaDB 数据库和 Redis 缓存,适合作为家庭或小型企业 NAS 使用。
更多推荐
所有评论(0)