关于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代码和构建说明都是公开的。没有树莓派的物理硬件支持,这些都是做不到的。

1.jpg

2.jpg

观看现场演示请联系 @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个命令。
3.jpg

想要一个安全的 @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件事

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/225428

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。