大概这篇博文发表之后,应该算是我个人的第一篇翻译作品了,翻译的可能不是非常到位,望各位看官大刀砍过来。

原文链接:http://resin.io/blog/docker-on-raspberry-pi-in-4-simple-steps/

下面是文章正文部分



更新:我们已经放出了ARM下Docker 0.7.2,点击阅读很多其它

一周曾经,我们放出了树莓派上安装Docker的相关教程,那么大家在兴奋之余也反馈了非常多问题诸如安装过程非常麻烦。当中也有的反馈说“为什么不直接提供一个镜像呢?”

我们依据反馈看了下我们的选择,依据下面两个原因做出了一个艰难的决定(不提供完整的硬盘镜像):首先,一个已经安装完Arch Linux的用户必须抹掉他现有的系统。其次,每次Arch Linux或者Docker放出一个新的镜像我们就不得不反复这个过程(镜像制作)。相反,我们重构并打包了当中的关键组件,把近一百步的安装过程简化到了简单的四步。

以下的步骤三是一个简单的命令行安装方式。他有什么作用呢?非常easy,他把我们放在GitHub上的一系列的包下载到你的机器上并进行安装,不多不少,刚刚好。

简化后的步骤

1. 插入SD卡,而且将Arch Linux安装步骤到SD卡上。

2. 启动你的树莓派,找到它的ip地址(怎样设置请戳【设置树莓派的IP地址】)而且通过SSH以root账户登录,Arch Linux默认的rootpassword是root,假设您已经改动过rootpassword,请用改动过的rootpassword。

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容器中的演示样例project[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是啥?”。



我们也希望能够倾听到来自各位读者的关于我们前进的方向以及我们的产品的潜在应用的各种建议,欢迎联系我们。

简单四步開始树莓派上的Docker之旅的更多相关文章

  1. 从2月14号開始,上传AppStore会碰到:Failed to locate or generate matching signing assets

    从2月14号開始,上传AppStore时可能会碰到这个问题: Failed to locate or generate matching signing assets Xcode attempted ...

  2. cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第一步---開始界面&amp;关卡选择

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...

  3. 改变,从跨出第一步開始——记海大ITAEM团队首次IT讲座掠影

    之前以前写了"行动带来力量,周三(5月7日)晚IT讲座通知",昨晚已经跨出了第一步.让我们还是看举办者骆宏的QQ空间的文字吧.尽管未能到现场助兴,但看着海大学子在不断挑战自己,进而 ...

  4. 简单的刚開始学习的人配置Android SDK+ADT+Eclipse

    1.下载JDK.Android SDK和Eclipse(Eclipse 版本号最好新一些) 注意:下载的SDK最好和后面的ADT配套,否则Eclipse可能会报错. 如:SDK 21.0.1 相应 A ...

  5. 在树莓派上读取土壤湿度传感器读书-python代码实现及常见问题(全面简单易懂)

    本篇文章简单介绍了如何在树莓派上配置土壤湿度传感器以读取土壤湿度(以百分比的形式出现)及代码实现. 主要包含有以下4个模块: 一.土壤湿度传感器常见类型及介绍 二.实验所需设备 三.设备连线方式与代码 ...

  6. LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)

    翻译 反转一个单链表. 原文 Reverse a singly linked list. 分析 我在草纸上以1,2,3,4为例.将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面精致 ...

  7. Win10上运行Docker

    1. 前言 Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. Docker发布Mac和Windows 的目标非常简单——开发者可以更加简单方便地在研发机器上使用D ...

  8. 树莓派也跑Docker和.NET Core

    树莓派是什么 树莓派就是一个卡片大小的迷你电脑. 安装系统 有了电脑,我们当然得先安装系统. 系统下载 https://www.raspberrypi.org/downloads/raspbian/ ...

  9. 从零開始开发Android版2048 (四) 分数、重置、结束

    这一篇的内容主要是在上一篇的基础上,增加分数计算(包含当前分数和最高分数).游戏结束的推断以及游戏界面的重置这三个部分的功能. 一.分数的计算和保存          首先,2048这个游戏的分数包含 ...

随机推荐

  1. INDY10 IDHTTPSERVER返回中文不乱码

    INDY10 IDHTTPSERVER返回中文不乱码 procedure TynHttpServer.CommandGet(AContext: TIdContext; ARequestInfo: TI ...

  2. 使用stream(流)实现多表数据传输

    使用stream(流)实现多表数据传输 几乎所有的TCP和HTTP通信控件都支持stream(流)的传输. 使用stream(流)是可以实现多表数据传输的. 但这需要自定义协议了: 合并后的strea ...

  3. .net上开发winform

    c++用WinForm做界面的实现 因为笔者是以前是做C#的,对Winform情有独钟,最近想转C++,想把以前的一些Delphi转成c++,MFC我不熟而且用起来相当烦效果又丑,GTK图形库用起来太 ...

  4. python测试开发django-7.django模板继承(block和extends)

    前言 打开一个网站时候,点导航栏切换到不同的页面,发现导航部分是不变的,只是页面的主体内容变了,于是就可以写个母模板,其它的子页面继承母模板就可以了. 母模板 可以在母模板中添加多个块标签,每个块标签 ...

  5. Eclipse设置打印线

    在调出Preferences之后,选中Text Editors.先选中Show print margin,在Print margin column框中填入180就可以,然后选择以下的Print mar ...

  6. jdbc连接rac的oracle数据库

    jdbc连接rac的oracle数据库需要配置所有racIP,如下: DB1 =(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(H ...

  7. 表单提交的3种方式,http post的contentType

    application/x-www-form-urlencoded:窗体数据被编码为名称/值对.这是标准的编码格式.这是默认的方式 multipart/form-data:窗体数据被编码为一条消息,页 ...

  8. MATLAB SVM

    clc;clear;close all; traindata = [1,0; 3,10; 2,2; 2,3; -1,-1; -6,-4; -4,-1; -1.5, -3];group = [1 1 1 ...

  9. JAVA常见算法题(三十四)---计算加密之后的电话号码

    某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的, 加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字, 再将第一位和第四位交换,第二位和第三位交换. 求加密之后的 ...

  10. [MAC OS ] UserDefaults

    reference to : http://www.jianshu.com/p/d59b004b5ea7 1.用UserDefaults存储配置信息 注:本次使用UserDefaults存储信息是在不 ...