



树莓派(Raspberry Pi,RPi),或者简称为RasPi/RPI,是为学习计算机编程教育而设计的只有信用卡大小的微型电脑,基于Linux系统。Windows 10 IoT发布后,我们也可以在树莓派上运行Windows系统。树莓派自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通都有,可谓是“麻雀虽小,五脏俱全”。
总体上来说,树莓派是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一个10/100 Mbps以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能,只需接通电视机和键盘就能执行电子表格、文字处理、玩游戏、播放高清视频等诸多功能。Raspberry Pi B款只提供电脑板,无内存、电源、键盘、机箱或连线。
树莓派是通过有生产许可的Element 14/Premier Farnell、RS Components及Egoman生产的。这三家公司都在网上出售树莓派。我们也可以在京东、淘宝等国内网站购买树莓派。如需进一步了解,各位可以访问官方网站(https://www.raspberrypi.org/)。
树莓派官方网站有很多实验项目(https://projects.raspberrypi.org/zh-CN/projects),如图3-46所示。有兴趣的朋友可以去多多尝试。
图3-46
树莓派(见图3-47)的价格非常便宜,基本上200多元就可以入手一台。
图3-47
树莓派的硬件配置非常丰富(见图3-48),处理器强大而且内存足够,可以用于许多场景,比如智能家居的中控、航空器、BT下载器、挖矿机、智能机器人、小型服务器(花生壳+网站)等。
图3-48
艺术照看过了,我们上一张实景图(见图3-49)。对,就是下面那个小盒子,可以连接键盘、鼠标和显示器。
图3-49
接下来,我们就在这个小盒子上基于Docker来运行个人网盘。揣上就好,数据谁也拿不走!
我们在之前已经讲过,SSH主要是用于远程登录。在自带的树莓派系统中,开启SSH比较简单。我们可以使用“sudo raspi-config”命令进入配置界面,如图3-50所示。然后选择“Advanced Options”选项,出现如图3-51所示的界面。
图3-50
图3-51
最后,选择“A4 SSH”选项,启用SSH服务,如图3-52所示。
图3-52
和之前一样,我们使用SSH来安装Docker。这里我们使用快捷脚本安装。
步骤01 使用SSH连接树莓派(见图3-53)。
图3-53
步骤02 使用快捷脚本安装。
如有疑问,可以回顾之前的教程,这里我们直接执行以下脚本(见图3-54):
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
图3-54
dpkg是Debian Packager的简写,是为Debian专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu、KNOPPIX等。dpkg是Debian软件包管理器的基础,在刚才安装Docker时,dpkg被中断,我们可以使用“sudo dpkg--configure-a”命令来重新配置和释放所有的软件包(见图3-55),然后再次执行安装脚本(见图3-56),直到安装成功(见图3-57)。
图3-55
图3-56
图3-57
网盘我们用的很多,但大多都是收费的,而且还限流,那么如何快捷地依赖树莓派搭建我们自己的个人网盘呢?其实仅需一行命令足矣:
docker run -d --name nextcloud -p 80:80 nextcloud
如上命令所示,我们使用了nextcloud的镜像。需要特别说明的是,NextCloud是国外一个开源的网盘应用,用户可以免费下载并安装在服务器等终端,随时管理自己的数据(个人、创业团队均可免费使用),支持各种文件、日历、联系人和邮件等。NextCloud的主要优势如下:
·开源项目,没有服务费、会员费。
·文件、空间大小、上传下载速度不受限。
·功能丰富齐全,支持办公协作、一键分享、在线预览、子账号管理、看板、下载管理器等。
·数据存储在自己的服务器上,数据隐私有保障。
在树莓派执行以上命令之后,我们就可以通过IP或者主机名称访问个人网盘了。创建管理账户之后的网盘主界面如图3-58所示。
图3-58
在局域网中,访问速度非常快,我们可以在电脑上在线看视频、图片、PDF等文件,而且NextCloud提供了移动端APP,真心是非常方便、快捷、好用。使用树莓派,插一个移动硬盘或者存储卡,配置一个花生壳,我们的个人云盘就毫不逊色于主流的网盘了。
一行Docker命令就打开了个人云盘之旅,但是整个行程其实并不是这么简单的,我们还需要考虑以下问题:
·如何实现容器数据的持久化?就如以上示例所示,当我们的容器重启之后就发现刚刚上传的文件都不见了,该如何处理呢?
·如何保障容器持久健康运行?崩溃之后又如何自动恢复?
·如何更友好地访问我们的应用呢?
·如何更新、升级以及回退应用呢?
·容器应用出现异常又该如何调测呢?
总之,我们面临的问题可能还有很多,那就一起在后续的章节中寻找答案吧!