Docker搭建自己的网盘Nextcloud

网盘的对比:

随着前几年的网盘大战落幕,如今基本上只剩下百度网盘一家独大。凭借2TB的免费容量,百度网盘成功占据了网盘市场的大部分份额。然而,非会员用户下载速度被限制在“几十K”甚至“几K”的问题一直备受诟病。虽然后续出现了号称永久不限速的阿里云盘以及一些并不出名的小厂商,但似乎也未能完全撼动百度网盘的地位。

相比之下,国外的网盘服务如Google Drive和微软OneDrive,在下载速度上基本没有限制。虽然它们提供的免费存储容量无法与百度的2TB相比,但不依靠限速来吸引客户付费,我觉得才是一条更为合适和可持续的商业之路(用可汗陛下的话来说就是可持续性的竭泽而渔(●ˇ∀ˇ●))。

Nextcloud介绍(官方文档:https://docs.nextcloud.com):

Nextcloud 是一个开源的、自托管的云存储解决方案,允许用户在自己的服务器上搭建私有云存储。它提供了类似于Dropbox、Google Drive等公共云服务的功能,但具有更高的隐私性和安全性。Nextcloud的详细介绍:

主要功能:

  1. 文件存储与同步:Nextcloud支持跨设备的文件存储与同步,用户可以在任何设备上访问自己的文件。
  2. 文件分享:用户可以生成链接分享文件或文件夹,并设置访问权限和过期时间。
  3. 协作工具:Nextcloud集成了多种协作工具,包括在线文档编辑(与OnlyOffice或Collabora Online集成)、日历、任务管理和视频会议(与Talk集成)。
  4. 版本控制:支持文件的版本控制和恢复功能,防止数据丢失。
  5. 安全和隐私:提供端到端加密、服务器端加密和双因素认证,确保数据安全。
  6. 丰富的插件生态:Nextcloud拥有广泛的插件生态系统,用户可以根据需要扩展功能,例如笔记、邮件客户端、音乐播放器等。
  7. 兼容多种存储后端:支持多种存储后端,如本地存储、NFS、对象存储(如Amazon S3)等。

优点:

  1. 完全掌控数据:数据存储在自己的服务器上,用户完全掌控数据,确保隐私和安全。
  2. 开源与透明:Nextcloud是开源软件,用户可以自由查看、修改和分发代码,透明度高。
  3. 高可定制性:丰富的插件和应用市场,用户可以根据需要定制和扩展Nextcloud的功能。
  4. 无广告:没有广告干扰,用户体验更加纯净。
  5. 多平台支持:支持Windows、Mac、Linux、iOS和Android等多个平台,方便用户在不同设备上使用。

缺点:

  1. 技术门槛:需要一定的技术知识来安装和维护服务器,初学者可能会感到困难。
  2. 硬件成本:需要自己的服务器和存储设备,可能会有一定的硬件成本。
  3. 维护和更新:需要自己进行系统的维护和更新,确保系统安全和功能正常。

应用场景:

  1. 个人用户:适合希望完全掌控数据隐私和安全的个人用户。
  2. 中小企业:提供企业级的协作工具和数据管理功能,适合中小企业搭建内部云存储和协作平台。
  3. 教育机构:支持学校和大学构建安全的在线学习和协作平台。
  4. 开发者与技术社区:开源和高可定制性使其成为开发者和技术社区的理想选择。

总结: Nextcloud作为一个自托管的云存储解决方案,以其高度的隐私性、安全性和可定制性,为个人用户和组织提供了一种可靠的替代公共云服务的选择。尽管需要一定的技术门槛和硬件成本,但其带来的数据控制和灵活性使其成为许多用户的首选。

Docker安装部署Nextcloud

步骤 1:安装 Docker

首先,确保你的系统是最新的:

[root@Nextcloud ~]# yum update -y

然后,安装Docker:

[root@Nextcloud ~]# yum config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
[root@Nextcloud ~]# yum install docker-ce docker-ce-cli containerd.io -y
[root@Nextcloud ~]# systemctl start docker
[root@Nextcloud ~]# systemctl enable docker

验证Docker安装:

[root@Nextcloud ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

步骤 2:安装 Docker Compose

下载Docker Compose的二进制文件,并设置权限:

[root@Nextcloud ~]# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 12.1M 100 12.1M 0 0 103k 0 0:02:00 0:02:00 --:--:-- 141k

[root@Nextcloud ~]# chmod +x /usr/local/bin/docker-compose

验证Docker Compose安装:

[root@nextcloud ~]# docker-compose --version
docker-compose version 1.29.2, build 5becea4c

步骤 3:创建 Docker Compose 文件

创建一个目录来存放Nextcloud相关文件:

[root@nextcloud ~]# cd nextcloud-docker/
[root@nextcloud nextcloud-docker]#

在这个目录中,创建一个docker-compose.yml文件,并添加以下内容:

[root@nextcloud nextcloud-docker]# cat docker-compose.yml
version: '3.1'

services:
  db:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: nextcloud
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: example
      MYSQL_INITDB_SKIP_TZINFO: "1"
      MYSQL_ROOT_HOST: '%'
      INNODB_READ_ONLY_COMPRESSED: "OFF"
    command: --innodb-read-only-compressed=OFF
    volumes:
      - db_data:/var/lib/mysql

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud_data:/var/www/html
    environment:
      MYSQL_PASSWORD: nextcloud
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_HOST: db

volumes:
  db_data:
  nextcloud_data:

步骤 4:启动 Nextcloud

在nextcloud-docker目录中运行以下命令来启动服务:

[root@nextcloud nextcloud-docker]# docker-compose up -d
Creating network "nextcloud-docker_default" with the default driver
Creating volume "nextcloud-docker_db_data" with default driver
Creating volume "nextcloud-docker_nextcloud_data" with default driver
Pulling db (mariadb:)...
latest: Pulling from library/mariadb
7b1a6ab2e44d: Pull complete
034655750c88: Pull complete
f0b757a2a0f0: Pull complete
4bbcce26bc5e: Pull complete
04f220ee9266: Pull complete
89c8a77f7842: Pull complete
d1de5652303b: Pull complete
ef669123e59e: Pull complete
e5cec468d3a6: Pull complete
b14b1ba1d651: Pull complete
Digest: sha256:0f04ae6f30c5a3295fb7cc9be5780c15ff21d6028f999b19f5803114c1e8559e
Status: Downloaded newer image for mariadb:latest
Creating nextcloud-docker_db_1 ... done
Creating nextcloud-docker_app_1 ... done

这将下载并启动Nextcloud和MariaDB容器。Nextcloud将通过端口8080对外提供服务。

步骤 5:配置 Nextcloud

  • 打开浏览器,访问
http://your_server_ip:8080

  •  在打开的Nextcloud安装页面中,创建一个管理员账号。

  • 点击“完成安装”,Nextcloud将完成配置并启动。

步骤 6:访问 Nextcloud

安装完成后,你可以通过pc端浏览器访问Nextcloud,进行文件上传、分享等操作。访问地址为:

http://your_server_ip:8080

 

也可以通过手机端浏览器访问Nextcloud,进行文件上传、分享等操作。访问地址也为:

http://your_server_ip:8080

 

其他配置(可选)

为了更好的性能和安全性,你可以进一步配置Nextcloud,例如设置SSL、配置缓存等。你也可以通过修改docker-compose.yml文件来添加这些配置。

部署完可以和百度网盘对比下上传下发速度,你会发现新世界!!

 

 

 


云野 » Docker搭建自己的网盘Nextcloud

发表回复