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