关于Docker在树莓派上的5件事

本文讲的是关于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代码和构建说明都是公开的。没有树莓派的物理硬件支持,这些都是做不到的。
  • Container Camp的文章引用了我的物联网演示。



观看现场演示请联系 @AgilePBoro@docker  # ctmtech 的@ alexellisuk 2016年9月24日,下午12:04。链接:
https://twitter.com/comparemkt ... 5Etfw

5、创建一个超级计算机

建立一个集群,没有比在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入门
  • :树莓派上的Docker Swarm模式深度探索视频

想学Docker?访问我的在线研讨会: Hands-On Docker labs

原文链接:http://blog.alexellis.io/5-things-docker-rpi/(翻译:陈晏娥)

原文发布时间为:2016-10-02

本文作者:陈晏娥

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:关于Docker在树莓派上的5件事

你可能感兴趣的:(关于Docker在树莓派上的5件事)