Docker搭建自己的网盘Nextcloud
Nextcloud介绍(官方文档:https://docs.nextcloud.com):
Nextcloud 是一个开源的、自托管的云存储解决方案,允许用户在自己的服务器上搭建私有云存储。它提供了类似于Dropbox、Google Drive等公共云服务的功能,但具有更高的隐私性和安全性。Nextcloud的详细介绍:
主要功能:
- 文件存储与同步:Nextcloud支持跨设备的文件存储与同步,用户可以在任何设备上访问自己的文件。
- 文件分享:用户可以生成链接分享文件或文件夹,并设置访问权限和过期时间。
- 协作工具:Nextcloud集成了多种协作工具,包括在线文档编辑(与OnlyOffice或Collabora Online集成)、日历、任务管理和视频会议(与Talk集成)。
- 版本控制:支持文件的版本控制和恢复功能,防止数据丢失。
- 安全和隐私:提供端到端加密、服务器端加密和双因素认证,确保数据安全。
- 丰富的插件生态:Nextcloud拥有广泛的插件生态系统,用户可以根据需要扩展功能,例如笔记、邮件客户端、音乐播放器等。
- 兼容多种存储后端:支持多种存储后端,如本地存储、NFS、对象存储(如Amazon S3)等。
优点:
- 完全掌控数据:数据存储在自己的服务器上,用户完全掌控数据,确保隐私和安全。
- 开源与透明:Nextcloud是开源软件,用户可以自由查看、修改和分发代码,透明度高。
- 高可定制性:丰富的插件和应用市场,用户可以根据需要定制和扩展Nextcloud的功能。
- 无广告:没有广告干扰,用户体验更加纯净。
- 多平台支持:支持Windows、Mac、Linux、iOS和Android等多个平台,方便用户在不同设备上使用。
缺点:
- 技术门槛:需要一定的技术知识来安装和维护服务器,初学者可能会感到困难。
- 硬件成本:需要自己的服务器和存储设备,可能会有一定的硬件成本。
- 维护和更新:需要自己进行系统的维护和更新,确保系统安全和功能正常。
应用场景:
- 个人用户:适合希望完全掌控数据隐私和安全的个人用户。
- 中小企业:提供企业级的协作工具和数据管理功能,适合中小企业搭建内部云存储和协作平台。
- 教育机构:支持学校和大学构建安全的在线学习和协作平台。
- 开发者与技术社区:开源和高可定制性使其成为开发者和技术社区的理想选择。
总结: 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,进行文件上传、分享等操作。访问地址为:
也可以通过手机端浏览器访问Nextcloud,进行文件上传、分享等操作。访问地址也为:
http://your_server_ip:8080
其他配置(可选)
为了更好的性能和安全性,你可以进一步配置Nextcloud,例如设置SSL、配置缓存等。你也可以通过修改docker-compose.yml文件来添加这些配置。
部署完可以和百度网盘对比下上传下发速度,你会发现新世界!!