nextcloud+docker在阿里云服务器上搭建个人云存储盘(如何在服务器上搭建私有云盘)
撒旦一、什么是nextcloudNextCloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。二、什么是docker容器
本文旨在学习记录。下述内容是作者经历过大大小小的十来次失败总结而来,内容都是各方博客荟萃的结果,按照内容都已实践成功,若失败,只需初始化云盘,重新安装即可,无需抱疑。学习道路上难免坎坷,希望大家不畏挫折,不轻言弃,共勉。
目录
一、什么是nextcloud
NextCloud是一款开源的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。
二、什么是docker容器
容器就是将软件打包成标准化单元,以用于开发、交付和部署。Docker 能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
三、安装环境
服务器:阿里云服务器
Linux系统:CentOS 7.6 64位
CPU&内存:2核 2 GiB
实例规格族:ECS.t6
四、安装步骤
1、docker安装
yum install epel-release
yum install docker
注意,上述的docker安装为简易安装。如果读者需要选择国内阿里云镜像,或者是选择特定版本号安装的,或者是想要一个完整的docker安装教程的,请移步至:docker安装教程(依据官方文档,包含卸载旧版本)。
重启docker。
service docker restart
设置开机自动启动docker。
systemctl enable docker
通过 docker -v 命令查看安装情况。至此,docker安装完毕。
2、docker-compose安装
本人尝试了:安装docker-compose的两种方式 和 通过weget方式下载都失败,原因是网络问题,如若有同学能按以上方式下载,后期可能会多次因为网络不稳定而出现下载中断或结果报错。最后采取“通过官网下载安装包并通过xftp传送安装包至服务器上”或者采用国内镜像下载docker-compose(推荐这个),下面分别介绍两种方法,采用其中一种即可。
方法①:采用国内镜像下载docker-compose(推荐这个,更为方便些)
直接执行以下命令即可:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
方法②:通过官网下载安装包并通过xftp传送安装包至服务器上
从官网下载安装包:https://github.com/docker/compose/releases/tag/1.25.0-rc4 ,将安装包放置 /usr/local/bin 目录下,并改名为 docker-compose。
采用上述其中一种下载docker-compose即可。至此,docker-compose下载完毕。
最后,记得添加可执行权限。
chmod +x /usr/local/bin/docker-compose
通过 docker-compose -v 命令查看安装情况。至此,docker-compose安装完毕
3、镜像配置
在 /opt 目录下创建一个 nextcloud 目录,并切换至 nextcloud 目中,进行网络创建操作。
cd /opt
mkdir nextcloud
cd nextcloud
需要创建一个nextcloud的网络。注意,如果以下步骤失败了,只需再输入命令尝试多几遍:
docker network create nextcloud
创建网络成功后,新建并编辑docker-compose.yml文件设置镜像信息。这里特别强调几点:
① 复制粘贴完后,请再次确认开头是否有漏缺字符,作者在每次复制的时候开头的‘version’英文总是不完整;
② 字段MYSQL_ROOT_PASSWORD对应后面需要初始化的数据库密码,字段MYSQL_DATABASE对应的是数据库的库名,字段"2333:80"对应的是开放端口2333(记得在阿里云安全组中开放该端口!),后面需通过ip:端口号访问你的页面。以上字段读者可自定义,该类字段在最后的nextcloud初始化中将会使用,若第一次安装,请按照本文默认配置来进行。
③ 字段version代表版本号,换为数字“3”也是可以的,影响不大。
④ 编辑完成后,按esc进入命令模式,输入 :wq 命令进行保存。
vi docker-compose.yml #通过vi命令,编辑配置文件,下面是需要编辑的内容
version: '3'
services:
db:
container_name: cloud_db
image: mysql:5.7
volumes:
- "./data/cloud/mysql:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: nextcloud
app:
container_name: cloud_app
depends_on:
- db
image: nextcloud
volumes:
- ./data/cloud/config:/var/www/html/config
- ./data/cloud/data:/var/www/html/data
- ./data/cloud/apps:/var/www/html/apps
links:
- db
ports:
- "2333:80"
restart: always
networks:
default:
external:
name: nextcloud
最后,拉取镜像(该过程较为缓慢,请耐心等候):
docker-compose up -d
至此,镜像拉取完毕。
五、访问,并初始化nextcloud信息
当你完成镜像拉取时,就可以通过 ip:端口 来访问nextcloud页面。如作者的公网IP为120.xx.xxx.24,端口为:2333(请再次确认已开放该端口),输入:120.xx.xxx.24:2333即可访问,结果如图。
这里注意,管理员账号密码需自定义。数据库需要选择 MySQL/MariaDB,数据库用户必须是 root,而数据库密码(root)、数据库名(nextcloud)、数据库主机(db)是docker-compose.yml文件中配置的信息!请严格仔细按照上图输入,如果你没有修改过docker-compose.yml配置文件的话。
最后大功告成,下面是作者关于应用nextcloud的一些自定义设置和使用展示。
六、扩展与结语
细心的读者已经发现,上面的演示中,是直接通过域名访问,而非以 ip:端口或者以域名:端口的方式进行访问,这便是我要补充的内容。限于篇幅和主题,本文这里不作赘述,请读者移步至:如何直接通过域名访问页面。
本文是作者经历过大大小小的十来次失败总结而来,内容都是各方博客荟萃的结果,上述内容都已实践成功,若失败,只需初始化云盘,重新安装即可,无需抱疑。学习道路上难免坎坷,希望大家不畏挫折,不轻言弃,共勉。若有帮助,请点赞收藏,谢谢。
更多推荐
所有评论(0)