Docker方式部署Nextcloud
in Linux with 4 comment

Docker方式部署Nextcloud

in Linux with 4 comment

如果你想搭建个人或者团队私有网盘,那么 NextCloud 可能是目前最好的选择了。

网盘介绍

众所周知,国内很多网盘都关停了,现有的百度云还限速,甚至网盘里的文件还会被删除,网盘使用体验差、安全性堪忧。

团队内部分享文件,用微信传输有大小限制,且只能通过公网上传下载;用 QQ 传输虽然可以通过内网传输,但是有的文件是公司的机密,直接传输有泄露的风险,打包加密传输又太麻烦;并且文档应该是有查看权限的。

这个时候,如果有这么一套系统,既能够部署在局域网环境,又可以设置不同用户组的访问权限,还可以实现内网 + 公网访问,岂不是完美解决了以上问题。

这就要说起今天的主角了--「Nextcloud」,ownCloud 创始团队的新作,基于 ownCloud 开发,但是赋予了更多的特性,并且更加稳定,可以自定义部署,支持各种插件,甚至可以端到端加密等等。

(其实也可以考虑使用群辉等 NAS 设备,相对于非技术人员配置相对会更简单,不过不在本文讨论范围,以后有机会再写。)

安装

1、环境配置

首先,你需要有一台 Linux 环境的服务器,推荐使用 CentOS,本文及后续文章都会以 CentOS 为例。

其次,要在服务器上搭建 Docker 环境并启动 Docker,详细的操作参考我的上一篇文章「Docker环境搭建(CentOS篇)」。

对于 Docker 不了解也不要紧,只要按照下面的步骤进行操作即可。

2、拉取镜像

在终端执行以下命令,拉取 Nextcloud 镜像:

docker pull nextcloud

拉取到的 Nextcloud 镜像的 tag 是 latest,显示以下信息即表示拉取成功:

Using default tag: latest
latest: Pulling from library/nextcloud
bc51dd8edc1b: Pull complete
a3224e2c3a89: Pull complete
be7a066df88f: Pull complete
bfdf741d72a9: Pull complete
a9e612a5f04c: Pull complete
c026d8d0e8cb: Pull complete
d94096c4941c: Pull complete
5a16031a7587: Pull complete
0cf1daf9efc0: Pull complete
b202acb13a6c: Pull complete
907001e30880: Pull complete
2e4b329c80b2: Pull complete
cd1ec92e7164: Pull complete
8cba435f5ca6: Pull complete
e15a177658f6: Pull complete
9b26736059ce: Pull complete
53dbece8c17a: Pull complete
07158f924c2a: Pull complete
5ea6266119b8: Pull complete
e377a8cc542f: Pull complete
5662efc30cde: Pull complete
Digest: sha256:fa863d16c10387f4bae140bdd38f5591aa4b88f1292593dcffa501b9e1a76e58
Status: Downloaded newer image for nextcloud:latest
docker.io/library/nextcloud:latest

3、启动容器

执行以下命令,启动 Nextcloud 容器:

docker run -d --restart=always --name nextcloud -p 80:80 nextcloud

简单解释一下上述命令:

更多参数可以参考:https://hub.docker.com/_/nextcloud/

执行之后会显示一个类似下面的长串字符,表示启动成功:

526306c7a591205f6d2cd417384571b358e738e3c8b52c16c1fc6f1893c8535f

也可以使用下面命令查看容器是否正常运行:

docker ps

如果显示以下内容,表明容器已经在运行中了:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
619d34210996        nextcloud           "/entrypoint.sh apac…"   1 hours ago        Up 1 hours         0.0.0.0:80->80/tcp                  nextcloud

4、初始化安装

需要注意的是,如果使用的阿里云或腾讯的服务器,要检查服务器的安全组是否开放了 80 端口,没有开放的需要开放一下。

如果使用的是本地虚拟机,需要执行以下命令开放 80 端口对外访问:

firewall-cmd --zone=public --add-port=80/tcp --permanent

然后更新防火墙规则:

firewall-cmd --reload

使用浏览器访问 http://服务器ip 即可进入初始化设置页面。

直接输入管理员用户名和密码即可,数据库使用默认的 SQLite,后面有时间会写下怎么连 MySQL,安装推荐的应用勾不勾选无所谓,安装地址被墙了,即使勾选也不会安装。

初始化安装

初始化成功后弹出一个欢迎页面,关闭之后就进入到首页了,如下:

首页

将域名解析到服务器,即可实现外网访问 Nextcloud。

Enjoy it !

总结

个人认为,部署 Nextcloud 最简单的方法就是使用 Docker 进行部署,其他方式多多少少都有些复杂,想了解更多部署方式请访问:「Nextcloud 安装说明」。

本文介绍的只是最基础的环境部署,如果要在团队中的使用,还有很多需要优化和完善的地方,比如说数据库要改为 MySQL,插件的安装使用等等,后面有时间会再写一下相关的内容。

欢迎关注我的公众号,及时获取最新文章推送。
4评论
  • 诺言

    按照你的方式安装成功nextcloud 十分感谢 但是有一个问题 ios app 端 登陆时在 授权设备时候卡住了 试了几次都没反应 登陆不上去 网页端没问题可以正常登陆 问一下是否遇到过这个问题

    • 掘墓人 博主

      @诺言 没用iOS设备测试过,只用安卓测试过,使用IP访问可能有问题,域名没问题。

      • 诺言

        @掘墓人 好的 多谢 试了几次有个小BUG 退出刷新就进去了

        • 掘墓人 博主

          @诺言 Ok