利用Docker+NextCloud搭建私有云盘
NextCloud 是一款开源网络硬盘系统,最新版本是15,NextCloud 源代码完全开放,你可以在开源许可协议的约束下免费使用,对于需要专业支持的用户可以购买 NextCloud 官方的专业版订阅服务。同时它还支持Android和IOS客户端,方便同步。
环境
系统:CentOS7.6
Docker
Docker-compose
1. 初始化环境
获取sh脚本,运行sh脚本初始化运行环境。当然你也可以手动安装各个组件。
脚本主要内容是:
- 设置hostname
- 关闭selinux
- 安装docker
- 配置镜像加速器
- 安装pip
- 安装docker-compose
# 获取初始化环境脚本
wget -c wget -c https://raw.githubusercontent.com/PonyCool/sh/master/docker-compose-env-centos_7.6.sh
# 编辑脚本
vim docker-compose-env-centos_7.6.sh
# host_name="修改为你的hostname"
# ip_addr="修改为你的ip"
# 运行脚本
chmod 700 docker-compose-env-centos_7.6.sh
./docker-compose-env-centos_7.6.sh
错误
ipapython 4.6.4 has requirement dnspython>=1.15, but you'll have dnspython 1.12.0 which is incompatible.
或
Cannot uninstall 'requests'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall
解决方法
# 强制升级:
sudo pip install --ignore-installed +模块名
错误
ipapython 4.6.4 has requirement python-ldap>=3.0.0b1, but you'll have python-ldap 2.4.15 which is incompatible.
解决方法
安装python-devel,这是python的头文件和静态库包
yum install python-devel
此时docker和docker-compose已经安装完成,系统会进行一次重启。
安装完成后我们可以利用命令docker-compose -v
查看当前docker-compose的版本
2. 安装nextcloud
重启完成后,获取docker-compose文件启动容器
cd home
mkdir docker-compose
cd docker-compose
wget -c https://raw.githubusercontent.com/PonyCool/docker-compose-files/master/nextcloud/docker-compose.yml
docker-compose up -d
此时可以看到docker在拉取镜像,镜像拉取完成后系统自动启动
这时在浏览器中访问服务器的ip地址会看到nextcloud的管理页面
3. 配置数据
nextcloud默认的数据库为SQLite,这里我们使用刚才创建的Mariadb作为数据库。
填写数据库信息,数据库用户为root,密码为上面docker-compose文件中的密码,数据名为nextcloud,数据库连接地址为服务器IP:3306,同时填写管理员帐号信息。
注意:
数据库连接地址为服务器IP+端口,默认为3306。一定不要填写localhost!!!
如果出现no route to host
请检查防火墙是否开放3306端口
恭喜,至此私有云盘已经搭建完成!
后台管理页面是长这样的 o(∩_∩)o ,可以看到云盘里已经初始化了一些默认的文件。
4.配置客户端
nextcloud非常贴心的配备了各个终端的客户端软件,如果不喜欢用Web客户端。可以再这里下载到客户端软件。下面演示下window客户端配置过程。下载完客户端后一路next安装,安装完成后打开桌面上的Nextcloud客户端软件图标。
点击登录,输入服务器的ip地址,这里如果没有配置ssl证书的话,一定要填写http的地址,默认是https
输入账号密码登录,进行授权
授权
设置同步
现在数据同步已经完成,在你的本地文件夹中可以看到私有云盘的文件了
教程中所用的脚本都已上传到我的github中,欢迎各位start!!!
阿涛
报错:Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [1130] Host 'registry-1.docker.io' is not allowed to connect to this MariaDB server
Pony
@阿涛 : 检查下数据库是否已经授权,看错误应该是没有授权