欢迎阅读本篇教程,本篇教程将介绍如何使用 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 管理容器和服务,我们可以轻松地扩展服务,并快速进行环境配置和部署。