树莓派docker 搭建owncloud个人云盘

这两天在家里研究用树莓派搭建owncloud,看了很多的教程,由于树莓派是ARM架构的,外加镜像的数据源不同,所以装一些软件就经常这里没有那里没有,解决这些问题真的让我头疼,换了好几种镜像,都没有的装成功owncloud需要的环境(
php+mysql+nginx)
,差点让我奔溃,后来想到自己正在学习的docker,由于ARM架构的问题,docker支持的软件也不多,于是我就想自己为什么不通过Dockerfile弄一个owncloud环境出来,然后再做一个owncloud的镜像出来呢?于是就去dockerHub上找PHP之类的,发现就有官方现成的owncloud镜像,这样一来就很省事,都不用自己去弄Dockerfile这么麻烦了!

什么是树莓派?

什么是树莓派?
我的理解是树莓派既是一个开源的卡片电脑,但是麻雀虽小,五脏俱全。它所具备的其他的电脑都具备的功能,同时它还具备普通计算机不具备的功能,它能面向硬件开发,能够开发出很多有创意的硬件设备出来,这是树莓派强大之处,同时它也可以用做服务器级别的使用,能够像服务器一样保持长时间的稳定状态。

参看文章:
什么是树莓派
树莓派介绍及FAQ

树莓派入门

如果你对树莓派一无所知,可以参考一下内容,如果你都了解,可以跳过本章节。

树莓派 系统安装

刚买来的树莓派是就只是一个硬件主板,没有任何的操作系统的,所以我们就要先对其安装镜像系统,树莓派支持的系统有很多种,包括(Raspbian,Centos,Ubuntu,Win10
LoT版)等等,可见之强大,安装镜像也很简单,请参考下面的参考文章,这里就不作介绍了。

树莓派安装参考文章:
树莓派3B+安装系统(Raspbian)以及配置环境
所需要的下载的工具官网:
树莓派官网
TF卡格式化工具
向TF卡写入镜像工具

如果你还买了3.5寸LCD屏幕的话,提供屏幕驱动安装教程:
树莓派3.5LCD安装教程

树莓派 SSH

对于刚装好系统的树莓派就一定是要先SSH的(当然,如果你的树莓派插了hdmi或者是你装了显示屏就可以直接插上鼠标键盘操作,前提也是你装了可视化的操作系统),这个也非常简单,装完镜像后再SD卡根目录新建一个SSH(
这里就只有ssh,后的.txt都不要),然后用SSH工具通过用户名和密码就能登陆到树莓派的系统;详细的也请看参考文章,同时我也列出一些工具网站之类,以供参考。
树莓派各种系统默认密码合集
树莓派开启SSH的N种方法
初次使用树莓派并启用root管理员
推荐SSH工具
推荐SFTP工具

入门结束

一般你会了上面的操作,接下来的一些东西就可以自己通过其他的途径去学习借鉴。对我们下面的操作也有了一定的帮助。

什么是Docker

不了解docker 的话可以参考我的一篇关于docker 的总结文章
docker 学习总结

什么是owncloud

我个人的理解就是要给可以搭在本地的百度网盘,文件可以存在我们自己的存储设备上的一个开源软件服务,我们可以用owncloud快速地搭建起我们自己私有的云盘,这样文件地安全性和云盘地可靠性都有保证,对于公司和个人都是非常有用的。
当然还有很多其他这样的开源网盘服务,例如:next cloud,seafile …等等。

owncloud 服务搭建开始

我们现在正式开始介绍树莓派怎么通过docker 搭建own cloud 服务。

1.树莓派上安装docker

如果知道docker 是什么就知道docker有多方便,所以最大的前提就是先安装docker服务,这里我不做详细介绍,请参考参考文章; 参考文章:
树莓派卡片电脑安装 Docker
由于树莓派是ARM架构,ARM 平台不能使用 x86 镜像,查看 Raspbian 可使用镜像请访问:
arm32v7
armhf
https://hub.docker.com/r/izone/arm/tags/

2.安装MySQL(非必须)

其实owncloud自带sqllite,但是为了更快更好的建立文件索引,所以我还是推荐我们安装一个MySQL 来存数据(当然,如果你觉得麻烦的话,这一步也是可以省去的,可以直接跳过这一步),下面我们介绍一下MySql 的快速安装

由于MySQL官方没有ARM的docker镜像,所以先线上参考文章:树莓派Docker上安装Mysql

用docker的话一个命令就好了

命令:

1
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 hypriot/rpi-mysql

这样我们就启动成功了一个密码为123456的mysql,然后再MySQL中新建一个owncloud 数据库,为了方便可以在可视化工具中新建数据库。

3.安装 owncloud

这一步也很简单,也是一个命令就解决了

命令:
使用MySQL:

1
docker run -p 8080:80 -d  --link mysql:mysql -v /data/owncloud/:/var/www/html owncloud

不使用MySQL:

1
docker run -p 8080:80 -d   -v /data/owncloud/:/var/www/html owncloud

解释:
--link mysql:mysql:
是用来连接上一步创建MySQL容器的,使其能和MySQL容器通信,这个不填也是可以的,只不过后面的操作的麻烦一点,参考 关于对docker run –link的理解
-p 80:80:
这里是为了将容器内的端口映射到我们的树莓派的操作系统的端口上
-v /data/owncloud/:/var/www/html owncloud:
这一步是为将容器里面的路径映射到容器外面来,这样就方便我们对文件的管理
-d: 守护态运行,即后台运行

效果
这样我们的own cloud服务就跑起来了,我们直接在浏览器输入我们树莓派的IP地址+8080(端口号)就可以了,获取IP地址的命令 ifconfig(eth0就是我们树莓派的IP地址)

image.png

4.配置 owncloud

image.png

这一步其实也很简单, 如果你不需要MySQL 就不用配置什么,设置一个管理员账号密码点安装完成就可以了, 如果你需要MySQL,是你其他的数据库地址,你就在数据库上选MySQL 选择你的数据信息配置, 如果你在docker run 加了
–link 配置就只需要像我这样配置就好了:

1
2
3
4
数据库用户:root
数据库密码:123456(或者是你自己定义的密码)
数据库名:owncloud (这个需要你自己先创建好)
localhost: mysql (--link 的作用就体现在这里)

未完待续

nginx 配置 ssl 配置 。。。

尾巴

文章冗长,废话连篇,参考文章一大堆,可以说是没有作者的思想在里面,也可以说是作者极其懒惰,其实最主要还是我不擅长写这类文章,只能班门弄斧一下,我有时间会慢慢去优化这边文章,然后也总结一下这这个docker 搭建owncloud ,
如果你对docker 熟悉的话,或者说你了解docker的话,其实就我上面列的两个命令就能实现这个,但是我还是写这么多既是自己作为一个笔记记录下来,同时也是给那些知道一些,但又没有完全明白的人一些参考