欢迎阅读本篇教程,本篇教程将介绍如何使用 Docker Compose 搭建 Nextcloud + Redis。
一、安装 Docker 和 Docker Compose
首先,需要在服务器上安装 Docker 和 Docker Compose。Docker 是一个开源的应用程序容器引擎,可以帮助你在不同的环境中快速构建、部署和运行应用程序。Docker Compose 则是一个用于定义和运行多个 Docker 容器的工具。
安装 Docker 和 Docker Compose 的具体步骤可以参考官方文档:[1],[2]。
二、配置 Docker Compose 文件
创建项目目录,并在该目录下创建 docker-compose.yml
文件。
然后,在 docker-compose.yml
文件中添加以下内容:
version: '3'
services:
db:
image: linuxserver/mariadb
volumes:
- /pls_change:/config
restart: always
environment:
MYSQL_DATABASE: pls_change
MYSQL_USER: pls_change
MYSQL_PASSWORD: pls_change
MYSQL_RANDOM_ROOT_PASSWORD: '1'
PUID: 1000 #通过bash里面 id
PGID: 1001 #
TZ: Asia/Shanghai
ports:
- 172.17.0.1:8888:80
network_mode: bridge
container_name: mariadb
redis:
image: redis
restart: always
network_mode: bridge
ports:
- 172.17.0.1:6379:6379/tcp
container_name: redis
hostname: redis
volumes:
- /pls_change/redis:/data
app:
image: linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=1000 #通过bash里面 id
- PGID=1001 #
- TZ=Asia/Shanghai
volumes:
- /pls_change:/config
- /pls_change:/data
ports:
- /pls_change:443
restart: unless-stopped
network_mode: bridge
depends_on:
- db
- redis
其中:
db
:MariaDB 数据库服务用于存储 Nextcloud 的数据。
redis
:Redis 服务则是用于缓存 Nextcloud 的数据和查询结果。
app
:Nextcloud 服务将通过 PHP-FPM 运行,并依赖于 MariaDB 和 Redis 服务。
这里我们用了linuxserver的镜像,好处是可以复用当前用户的权限,不会导致当前用户无法访问数据文件夹。麻烦点的是,linuxserver默认用了sqllite数据库,需要切换
三、启动服务
创建好 docker-compose.yml
文件后,我们可以使用以下命令启动服务:
docker-compose up -d
其中,-d
参数表示在后台运行服务。如果需要查看服务的日志信息,可以使用 docker-compose logs
命令。
四、转化Nextcloud 使用的数据库,并配置 Nextcloud 使用 Redis 缓存
接下来,我们需要在 Nextcloud 中配置使用 Redis 缓存。
使用以下命令进入 Nextcloud 容器:
docker-compose exec app bash
转化Nextcloud 使用的数据库,将数据库转化成mysql
occ db:convert-type --all-apps --port="8888" --password='password' mysql dbusername dbhost dbname
https://docs.nextcloud.com/server/26/admin_manual/configuration_database/db_conversion.html
然后,修改 /config/www/nextcloud/config/config.php
文件,添加以下内容:
'memcache.local' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '172.17.0.1',
'port' => 6379,
]
其中,redis
配置用于指定 Redis 服务的主机名(172.17.0.1
)和端口号(6379
)。
最后,保存文件并重启 Nextcloud 容器即可完成 Nextcloud + Redis 缓存的搭建。
总结
本篇教程介绍了如何使用 Docker Compose 搭建 Nextcloud + Redis,通过 Docker Compose 管理容器和服务,我们可以轻松地扩展服务,并快速进行环境配置和部署。
参考来源链接:[1],[2],[3],[4],[5],[6]。