大概这篇博文发表之后,应该算是我个人的第一篇翻译作品了,翻译的可能不是很到位,望各位看官大刀砍过来。
原文链接:http://resin.io/blog/docker-on-raspberry-pi-in-4-simple-steps/
以下是文章正文部分
更新:我们已经放出了ARM下Docker 0.7.2,点击阅读更多
一周以前,我们放出了树莓派上安装Docker的相关教程,那么大家在兴奋之余也反馈了很多问题诸如安装过程很麻烦,其中也有的反馈说“为什么不直接提供一个镜像呢?”
我们根据反馈看了下我们的选择,根据以下两个原因做出了一个艰难的决定(不提供完整的硬盘镜像):首先,一个已经安装完Arch Linux的用户必须抹掉他现有的系统;其次,每次Arch Linux或者Docker放出一个新的镜像我们就不得不重复这个过程(镜像制作)。相反,我们重构并打包了其中的关键组件,把近一百步的安装过程简化到了简单的四步。
下面的步骤三是一个简单的命令行安装方式,他有什么作用呢?很简单,他把我们放在GitHub上的一系列的包下载到你的机器上并进行安装,不多不少,刚刚好。
简化后的步骤
1. 插入SD卡,并且将Arch Linux安装步骤到SD卡上。
2. 启动你的树莓派,找到它的ip地址(如何设置请戳【设置树莓派的IP地址】)并且通过SSH以root账户登录,Arch Linux默认的root密码是root,如果您已经修改过root密码,请用修改过的root密码。
3. 执行下面的命令:
curl https://raw.github.com/resin-io/docker-install-script/master/install.sh | sh
4. 重启你的树莓派,然后好好享受树莓派上的Docker吧!
树莓派上的Docker使用
一旦你完成了Docker的安装,你应该很想立刻就继续做点儿啥,而不是坐享其成。进一步的工作包括安装一个基本的镜像,对于这一步,我们已经放出了resin/rpi-raspbian,从这里你可以直接在你的树莓派开始使用Docker了:
1. 开启一个Docker的守护进程:
docker -d &
2. 开启IPv4转发:
sysctl -w net.ipv4.ip_forward=1
3. 下载基础镜像并开启shell终端:
docker run -t -i resin/rpi-raspbian /bin/bash
下载docker的示例项目
我们创建了一个可以打包在Docker容器中的示例工程[Google‘s Coder Project](http://googlecreativelab.github.io/coder/),要想运行的话,需要从前几步的shell里退出来,然后执行如下命令:
docker run -d -p 8081:8081 resin/rpi-google-coder
执行完上述命令之后,你就应该可以通过在浏览器里输入https://<树莓派的ip地址>:8081进入Google Coder开始hacking了。别忘了要使用HTTPS安全链接哟,普通的HTTP连接会被Google Coder挂起的。
如何让Dockerfiles在树莓派上跑起来
我们已经发布了一个Raspbian基础镜像,由于大部分的Dockerfiles是基于Ubuntu的镜像,同时呢Raspbian跟Ubuntu还是很像的(这里注明一下:Ubuntu是Debian Linux的一个衍生版,而Raspbian又是一个针对树莓派的修改定制版Debian,所以大家可以自行想象是否类似了),基本上只需要将命令"FROM
ubuntu"改为"FROM resin/rpi-raspbian"然后构建就好。如果这个修改无效,那应该就是你的Dockerfiles有点儿小问题,希望你能够攻克这个难关然后顺利的制作一个树莓派的镜像。
由于针对X86-64位制作的镜像是无法在树莓派上顺利工作的(CPU架构和指令集不一样,这里不再赘述),反之亦然,我们会询问你是否要为树莓派创建一个新的镜像,你可以通过使用 rpi-\*作为前缀,方便其他人能够清楚的看到。同时也希望Docker团队能够为不同的系统提供更多的原生支持,但现在的话,这个也已经够用了。
接下来干啥
我们为能够实现以一种超级简单的方式将Docker在你的树莓派上运行起来而自豪,我们也确信Docker在嵌入式领域的潜力是很大的,甚至有可能会比它在云端的潜力更大,我们也希望能够在Docker的官方索引中看到树莓派的专属镜像。
完成了这个里程碑,我们Resin.io团队的工作重点将会集中在全力准备Resin.io:The Product 12月份的alpha版本上,应该能刚好赶在圣诞节前。我们也会撰写更多的关于resin.io以及它背后的理念的文章,希望可以借此回答一些突如其来的问题比如“嗯,Resin.io是啥?”。
我们也希望可以倾听到来自各位读者的关于我们前进的方向以及我们的产品的潜在应用的各种建议,欢迎联系我们。