本文讲的是关于Docker在树莓派上的5件事【编者的话】在树莓派上使用Docker需要知道5件事——Docker领袖Alex Ellis@alexellisuk。如果你是Docker新手,请访问我的Docker实践在线研讨会:Hands-On Docker labs。
1、仅用一个命令安装Docker
今天,你没必要准备大量技术来让Docker运行在你的设备上。一个命令就足够了(通过apt-get在后台执行)——你甚至可以记住它:在Raspbian输入:curl -sSL get.docker.com |sh
提供你正在运行Debian或衍生系统,现在可以用了。Docker项目的人,从源头上,通过围绕单元测试和集成测试的CI质量检验关方法,创建docker/docker。2、知道你的架构
树莓派的硬件架构叫ARM,和普通PC、笔记本或云实例都不一样。什么意思呢?一个系统建立的二进制文件在另一个系统无法执行。
$ uname -a
Linux alexellis 4.4.19-v7+ #906 SMP Tue Aug 23 15:53:06 BST 2016 armv7l GNU/Linux
$ uname -a
Linux 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
上面是树莓派和Azure云Ubuntu实例的输出。所有的树莓派都兼容ARMv6架构,简单起见,我建议:在基于ARMv6的镜像,并且仅从官方发布的像Golang,Nodejs,InfluxDB等,目标架构一致的二进制文件上,构建代码。什么意思呢?意思是不能用docker run -d -p 80:80 nginx:latest
——继续阅读,解决方法在后面。
3、(还)不能相信任何人
这话说的挺尖锐——但在一个连婴儿监视器和灯泡都能被利用来执行DDOS攻击的环境下,得聪明点。
没有真正的官方镜像,但resin/rpi-raspbian
被上千的设备使用并且由resin.io策划。我建议基于这个来创建你所有的镜像。Docker团队正致力于在armhf名空间下的一系列准官方镜像,你将在docker/docker的 Dockerfile.armhf中看见那些镜像是怎么构建的。Docker公司剑桥团队的Anil,告诉我他的团队如何获得ARM服务器:为了创建一个build-farm来支持ARM设备,他们采用过时的方式。那个架构将在公共Docker Hub上,启用自动构建支持。
即便是花2天时间来编译PhantomJS——它仍然比依赖一个你一点都不了解的人在互联网上发布的tar.gz,要好。Adrian Mouat写的Docker安全,提出毒镜像的术语:一个被恶意软件污染的镜像。
我在GitHub上提供了一系列Dockerfiles,给常用软件,例如:Node.js,Python,Consul和Nginx:GitHub: alexellis/docker-arm如果想为例如Prometheus.io,Node.js或Golang,等软件,创建Docker镜像,那么:去他们的下载页面,找到官方的ARM二进制包,然后加入我们前面提到的基础镜像里面。如果不存在二进制文件,那么花时间来从源码重建,不要冒险。如果遇到问题,google搜索构建指南——一般5分钟就可以找到了。4、体验
树莓派擅长与硬件接口,通过它的40排针。可以直接或通过附加板卡和任何额定电压为3.3v/5v的电气部件通讯。制造商,例如Pimoroni,有许多目的——建立传感器和LED板,意味着没有电线或者复杂的代码裤。你在Dockercon和Container.Camp上看过我的物联网演示吗?视频那是为DockerCon预先录制的演示。里面所有的Dockerfiles,Python代码和构建说明都是公开的。没有树莓派的物理硬件支持,这些都是做不到的。
观看现场演示请联系@AgilePBoro@docker #ctmtech的@alexellisuk2016年9月24日,下午12:04。链接:https://twitter.com/comparemkt ... 5Etfw5、创建一个超级计算机
建立一个集群,没有比在Docker1.12用Swarm模式更容易的了。相信我的话,因为我花了几个星期来重建Swarm,Consul二进制文件等,来给LinuxUser杂志安装一个28个CPU的Swarm。现在我在管理器和工作台上各键入一个命令。甚至管理器也可以执行,这在原来的swarm模式是很难实现的。在Container.Camp上看Docker的报告——建立一个超级计算机确实需要2个命令。
想要一个安全的@docker集群?没问题,它是内置的:2个命令和你的设置@containercamp。6:38 PM - 9 Sep 2016第二个最常被问道的的问题是:可以用Pi集群运行minecraft超级服务器吗?简单的回答是不能,长的回答是肯定的。
你可能不会在新的,有更好FPS率的Pi上,玩一个图形密集度高的游戏,而且可能不能让Crome浏览器加载得更快,但它是一个非常宝贵的学习工具。你可以在一个架构上发布你的分布式应用程序,而不是一组特定的服务器上。例如:
- 在实体硬件上发布应用程序
- 模拟网络/电源故障
- 针对Docker远程API编码
- 跟踪瓶颈,并显示缩放不同服务增加(或减少)吞吐量。
接下来?
想更深入地了解Docker,DevOps和容器,在推特上联系我@alexellisuk。
想学Docker?访问我的在线研讨会:Hands-On Docker labs。原文链接:http://blog.alexellis.io/5-things-docker-rpi/(翻译:陈晏娥)
原文发布时间为:2016-10-02
本文作者:陈晏娥
本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。
原文标题:关于Docker在树莓派上的5件事