一分钟搭建NextClouc私有云
前言:
关键字:NextClouc、私有云;
之前博客介绍过Seafile私有云的搭建,本次介绍的是另一个开源的私有云NextCloud,关于NextCloud的过去与现在,就不多作介绍了,网上有大量同类的信息。本篇博文介绍的是如何在短时间内架设起一个属于自己的私有云,当然,这种快速搭建的方法,一般来说并不适合企业使用,原因是企业使用的环境更加复杂。这种快速搭建的方法,却很适合个人或家庭使用,之所以这样说,是因为这种快速搭建的方法,能免去大量服务器的前期系统环境的配置,同时也不需要对NextCloud的配置文件作过多的修改,甚至对LINUX不熟悉的也人也可轻松搭建起来。
既然要快速搭建,这难免要依赖于一些其它的工具,一分搭建NextCloud私有云,依赖的就是DOCKER……算了,不说废话了……
一、硬件与软件环境
在以下两个硬件上测试通过!为什么用ARM的硬件,看我博客的人都知道,私有微服务,博主都是搭建在低功耗硬件上的,这是性能、需求与经济上的平衡;
-
硬 件 :Raspberry Pi 4 Model B -- RAM:4G/8G
-
操作系统 :Raspbian Buster Lite
-
HARBOR版本 :非官方
-
DOCKER版本 :19.03.6
-
DOCKER-COMPOSE版本:1.25.4
-
代码测试日期:2020年08月29日
二、DOCKER环境构建
对于DOCKER环境的构建,博主一直是推荐从官方页面获取安装方法的[官方地址];当然,这里没有树莓派安装DOCKER的方法。关于DOCKER的安装,我写烦了,直接看下面[这部分代码是复制之前的文章的,不测试这部分代码了,凑合着看]:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# [ DOCKER-CE ]=============================================================================================== curl -sSL https://get.docker.com | sh # DOCKER-CE安装官方脚本; # 体验那如洪水猛兽般的下载速度吧!!!! sudo usermod -aG docker pi # 将用户"pi"加入"docker"用户组; # 这样"pi"用户在使用"docker"命令时就不需要在前加"sudo"了; sudo reboot # 重启使一些关于DOCKER的配置生效; docker version # 验证DOCKER-CE是否安装成功[成功将输出DOCKER-CE的版本信息]; # ============================================================================================================ # [ DOCKER-COMPOSE ]========================================================================================== docker pull masnagam/docker-compose:1.25.4 sudo docker run -itd --rm --name docker-compose-cp --entrypoint /bin/bash masnagam/docker-compose:1.25.4 sudo docker cp docker-compose-cp:/usr/local/bin/docker-compose /bin/docker-compose sudo docker stop docker-compose-cp sudo chmod 755 /bin/docker-compose && sudo chwon 0:0 /bin/docker-compose sudo docker-compose version # 我不想解释了……如果这个镜像已经不存在了,上官网找个更新的镜像代替即可; # DOCKER-COMPOSE在树莓派上安装非常麻烦,建议使用镜像提取法进行安装,如上; # 关于最新的基于ARM的DOCKER-COMPOSE获取,见下: # DOCKER-HUB :https://hub.docker.com/r/masnagam/docker-compose # GITHUB :https://github.com/masnagam/install-docker-compose # ============================================================================================================ |
二、NextCloud快速部署
这里使用的是NextCloud的官方镜像,操作命令如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
docker pull nextcloud:stable-apache # 下载“nextcloud:stable-apache”镜像; # NextCloud的官方镜像也有基于FPM的,有需要可按需要选择; # 快速搭建博主建议使用"Apache"的稳定版; sudo mkdir -p /opt/nextcloud/nextcloud-data # 其中"/opt/nextcloud/nextcloud-data/"用于NextCloud的数据保存; # 而"/opt/nextcloud/"下用于保存一些其它文件,比如说你自己编写的启动文件; # 以下为参考步骤[但博主不建议] docker run -itd -v /opt/nextcloud/nextcloud-data:/var/www/html -p 8080:80 --name My_NextCloud nextcloud:stable-apache # 事实上,执行以上命令,你就已经完成了NextCloud的搭建了,已经可以在服务器的浏览器上, # 通过"http://localhost:8080"或"http://127.0.0.1:8080"访问NextCloud; # 但博主并不建议这样操作,主要原因是不便于管理或升级; # 博主建议通过"docker-compose"命令管理NextCloud服务的启用、停止或更新; # 操作见下; |
创建"docker-compose.yml"文件:
1 2 3 4 5 |
cd /opt/nextcloud sudo touch /opt/nextcloud/docker-compose.yml sudo nano /opt/nextcloud/docker-compose.yml # 使用"nano"命令进入编辑界面,你也可以使用"vi"或"vim"等命令, # 并输入以下内容; |
编写"docker-compose.yml"文件[内容]:
1 2 3 4 5 6 7 8 9 |
version: '3.7' # 编排文件版本定义 services: # 要创建的服务 nextcloud: # 创建的服务名称/描述 image: nextcloud:19-apache # 使用的DOCKER镜像文件 ports: # 映射至宿主机的端口定义 - 8080:80 volumes: # 挂载至容器内的本地卷 - ./nextcloud-data:/var/www/html restart: always # 设定为:一直运行 |
使用"docker-compose"命令启动容器:
1 2 3 4 5 6 7 8 9 |
cd /opt/nextcloud sudo docker-compose up -d # 使用"docker-compose"命令启动NextCloud服务; # 以上命令等同"sudo docker-compose -f /opt/nextcloud/docker-compose.yml up -d" # 容器状态查询[随便二选一] docker ps docker-compose --project-directory /opt/nextcloud ps |
NextCloud更新/升级[更换镜像法]:
1 2 3 4 5 6 7 8 9 10 11 |
# NextCloud升级[更换镜像法] cd /opt/nextcloud && docker-compose stop # 停用当前服务 sudo nano /opt/nextcloud/docker-compose.yml # 修改容器编排文件 # --> 指定更加新的镜像文件即可; # --> 即修改"image: nextcloud:19-apache"本配置项中的内容; # --> 之后执行以下命令即可自动更新NextCloud的版本; sudo docker-compose -f /opt/nextcloud/docker-compose.yml up -d |
1 |
# 重新启用服务 |
三、NextCloud配置
当NextCloud按以上方式部署完成后[注意,在首次部署NextCloud时,镜像会生成一些必要的文件,需要一点时间],之后即可通过"http://localhost:8080"、"http://127.0.0.1:8080"或"http://服务器IP:8080"在浏览上访问NextCloud;首次在浏览上访问NextCloud,NextCloud需要你手动指定数据库的类型,可选择的类型有"SQLite3"、"PostgreSQL"或"MySQL/MariaDB",由于我们只是将服务器定义为个人或家庭使用,所以选择"SQLite3"即可,另外NextCloud还会建议你安装一些功能性插件,建议是保持默认安装即可[也可按需要选择安装],NextCloud建议安装的插件都很不错!
另外,NextCloud默认的管理员账号与密码均为:"admin";关于后面的操作,都是基于WEB界面的配置,本处就不截图了~
注意:由于这篇文章在我的草稿箱已经一个多月了,所以我不想再测试这些配置代码了,我简单看了下,应该是没问题的。另外,如果你以复制粘贴的方式创建相关文件,请注意空格的问题,见下;
原因:使用复制粘贴的方式复制配置至文件内,所有空格的前面将可能存在不可见的字符"M-BM-",造成文件不可用,这是字符编码的问题~若必需使用复制粘贴方式,请务必手动替换掉配置项中的所有空格!!!或使用以下命令将所有"M-BM-"替换成正常的空格字符[LINUX系统下命令行操作]~
1 2 3 4 5 |
sed 's/\xc2\xa0/ /g' -i [文件名称] # LINUX下可使用以下命令查看不可见字符的情况 cat -A [文件名称] vim -c "set list" [文件名称] |
四、保留
这里我原来想写什么的?我也忘记了,留着吧,那天记得了就补~
六、结语
这篇博文很短?是的,很短,也没有什么技术含量!而其实呢~博主这一个多月是有五六篇非常不错的服务搭建博文想写的~不过呢~博主这段时间也比较忙呢~于是呢,就一直拖,一拖呢~一些东西就又忘记了,于是吧~也就不想写了~
嗯~之前写过SEAFILE的搭建,怎么说呢?写个简单的使用对比感受吧~现在的NextCloud感觉上比Seafile强大很多,无论是UI界面还是基础功能。以前Seafile最大的优势是文件加密功能,貌视NextCloud现在也支持这一个功能了。如果说现在我需要在这两者中选择一个来作为自己的私有服务来使用的话,那么,我会毫不犹如地选择NextCloud。说实话,SEARFIEL作为国内的开源私有云项目,我是很赞赏的,但是,在国内,开源项目的生存环境真的比不上国外,在没有比较合适的收入来源或其它资金支持,感觉SEAFILE在走下坡路,如果你愿意,可以到SEAFILE的官网看看,你会了现这软件现在基本就已经没有什么人气了~另一点是,SEAFILE的官方更新真的慢,很多东西实际上停留在当年,一个基本没有维护或更新的项目,注定只有死路一条~如果不是有什么特别的爱国情怀,还是用NEXTCLOUD吧~如果要博主预测,那么我会说,SEAFILE很快就会成为一个时代的产物,最终被大家遗忘在历史的长河中~
It is very good to be interested in disseminating this type of information among young people and computer users in general. The benefit is not only on a narrow level, but the benefit is very great. I hope that you will continue to pay attention to publishing this information on your site, as it is really useful and a good addition.
2022-02-13 上午4:12