Docker快速搭建NAS服务——NextCloud
Docker快速搭建NAS服务——NextCloud
本文主要讲解如何使用Docker在本地快速搭建NAS服务,重点介绍了NextCloud的搭建过程。NextCloud是一个功能丰富的开源文件同步和共享平台,支持在线文档编辑、日历管理等功能。通过Docker Compose,可以方便地管理和配置NextCloud服务。
前言
在选择NAS服务时,有多种方案可供选择。以下是两种常见的方案:
FileBrowser:这是一个开源的Web文件管理器,提供了一个可视化的界面来管理文件系统。它支持预览、上传、下载、编辑和删除文件,还可以方便地创建文件夹、重命名文件和复制/粘贴文件。FileBrowser非常易于安装和使用,并且可以与其他应用程序进行集成。您可以通过在Web浏览器中输入FileBrowser的URL来访问它,从而远程管理您的文件系统。
NextCloud:这是一个自由开源的文件同步和共享软件平台,可以让用户在自己的服务器上存储、管理和共享数据。它提供了一个类似于Dropbox或Google Drive的界面,但用户可以完全控制自己的数据,而不必将其交给第三方公司。Nextcloud还有许多功能,如在线文档编辑、日历、联系人和更多。它可以在Windows、Mac OS X和Linux等操作系统上运行,还有Android和iOS的移动应用程序。
对于个人用户来说,FileBrowser可能更简单易用;而对于需要更多功能的小团队来说,NextCloud则提供了更丰富的功能和更好的用户体验。
NextCloud的搭建
NextCloud的官方文档推荐使用docker run命令来快速搭建服务,但博主更倾向于使用docker-compose,因为这种方式更便于管理和配置更新参数。
docker-compose文件编写
首先,需要在本地创建相应的文件夹结构:
cd ~
# 创建应用文件夹
mkdir -p nextcloud_docker/app
# 创建数据文件夹
mkdir -p nextcloud_docker/db
# 创建docker-compose文件
touch nextcloud_docker/docker-compose.yml
然后,编辑docker-compose.yml文件,内容如下:
version: '2.3'
services:
db:
image: mariadb:10.5
restart: always
container_name: nextcloud_db
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
networks:
- nextcloud_netbridge
volumes:
- /home/dev/nextcloud_docker/db:/var/lib/mysql:rw
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_PASSWORD=admin
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=admin
app:
image: nextcloud
restart: always
container_name: nextcloud_core
ports:
- 8090:80
networks:
- nextcloud_netbridge
links:
- db
volumes:
- /home/dev/nextcloud_docker/app:/var/www/html:rw
environment:
- MYSQL_PASSWORD=admin
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=admin
- MYSQL_HOST=db
networks:
nextcloud_netbridge:
driver: bridge
volumes: {}
运行及访问
接下来,启动NextCloud服务:
cd ~/nextcloud_docker
docker-compose up -d
docker logs -f nextcloud_core
启动后,你会看到类似以下的输出:
Initializing nextcloud 29.0.0.19 ...
New nextcloud instance
Initializing finished
=> Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/before-starting
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.3. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.3. Set the 'ServerName' directive globally to suppress this message
[Fri May 10 10:45:42.664233 2024] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.59 (Debian) PHP/8.2.18 configured -- resuming normal operations
[Fri May 10 10:45:42.664255 2024] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
初始账号密码均为admin,登录后就可以自行创建文件夹或文件了。
总结
本文主要介绍了两种NAS服务的区别以及NextCloud的搭建方式。NextCloud提供了丰富的在线共享平台功能,如线上直播、文件在线打开等,并支持大量插件扩展,适合小型团队使用。
参考链接:
- Welcome | File Browser
- Nextcloud - Open source content collaboration platform
- 如何在Linux系统使用Docker部署Nextcloud网盘并实现随地公网远程访问
- Docker部署nextcloud及其使用方法