简单四步開始树莓派上的Docker之旅
大概这篇博文发表之后,应该算是我个人的第一篇翻译作品了,翻译的可能不是非常到位,望各位看官大刀砍过来。
原文链接: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之旅的更多相关文章
- 从2月14号開始,上传AppStore会碰到:Failed to locate or generate matching signing assets
从2月14号開始,上传AppStore时可能会碰到这个问题: Failed to locate or generate matching signing assets Xcode attempted ...
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第一步---開始界面&关卡选择
/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...
- 改变,从跨出第一步開始——记海大ITAEM团队首次IT讲座掠影
之前以前写了"行动带来力量,周三(5月7日)晚IT讲座通知",昨晚已经跨出了第一步.让我们还是看举办者骆宏的QQ空间的文字吧.尽管未能到现场助兴,但看着海大学子在不断挑战自己,进而 ...
- 简单的刚開始学习的人配置Android SDK+ADT+Eclipse
1.下载JDK.Android SDK和Eclipse(Eclipse 版本号最好新一些) 注意:下载的SDK最好和后面的ADT配套,否则Eclipse可能会报错. 如:SDK 21.0.1 相应 A ...
- 在树莓派上读取土壤湿度传感器读书-python代码实现及常见问题(全面简单易懂)
本篇文章简单介绍了如何在树莓派上配置土壤湿度传感器以读取土壤湿度(以百分比的形式出现)及代码实现. 主要包含有以下4个模块: 一.土壤湿度传感器常见类型及介绍 二.实验所需设备 三.设备连线方式与代码 ...
- LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)
翻译 反转一个单链表. 原文 Reverse a singly linked list. 分析 我在草纸上以1,2,3,4为例.将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面精致 ...
- Win10上运行Docker
1. 前言 Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. Docker发布Mac和Windows 的目标非常简单——开发者可以更加简单方便地在研发机器上使用D ...
- 树莓派也跑Docker和.NET Core
树莓派是什么 树莓派就是一个卡片大小的迷你电脑. 安装系统 有了电脑,我们当然得先安装系统. 系统下载 https://www.raspberrypi.org/downloads/raspbian/ ...
- 从零開始开发Android版2048 (四) 分数、重置、结束
这一篇的内容主要是在上一篇的基础上,增加分数计算(包含当前分数和最高分数).游戏结束的推断以及游戏界面的重置这三个部分的功能. 一.分数的计算和保存 首先,2048这个游戏的分数包含 ...
随机推荐
- 漫谈js自定义事件、DOM/伪DOM自定义事件
一.说明.引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾的碎碎念,可能没什么条理,可能有表述不准确的地方,可能内容比较拗口生僻.如果您时间紧迫,或者JS造诣已深,至此您就可以点击右侧广告(木 ...
- MVC三级联动无刷新
本篇实现有关客户.订单和产品的无刷新三级联动,先看最终效果: 没有选择时,后2个Select状态为禁用: 当选择第1个Select,第2个Select可供选择,第3个Select依旧禁用: 当选择第2 ...
- UCOS移植心得(
移植UCOS之前,你首先应该做好三件事: 1.弄懂UCOS,这是谁都知道的哦 ^_^ 2. 弄懂你想要移植到的硬件平台 3. 清楚你使用的编译器是如何处理函数的局部变量和怎么样处理函数间的参数传递 这 ...
- 纯文本抽出程序库DMC TEXT FILTER
因需而生,红樱枫为文本转换市场领航 --纯文本抽出程序库DMC TEXT FILTER,从需求中把握平衡 在高度数字化的今天,数字图书馆已经成为非常多人查询资料的有效途径.然而即使在畅通的宽带搜寻中一 ...
- SAE java应用读写文件(TmpFS和Storage)
近期不少java用户都在提sae读写本地文件的问题,在这里结合TmpFS和Storage服务说说java应用应该如何读写文件TmpFS是一个供应用临时读写的路径,但请求过后将被销毁.出于安全考虑,sa ...
- 使用 NSPropertyListSerialization 持久化字典与数组
NSPropertyListSerialization The NSPropertyListSerialization class provides methods that convert prop ...
- 解决hiveserver2报错:java.io.IOException: Job status not available - Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
用户使用的sql: select count( distinct patient_id ) from argus.table_aa000612_641cd8ce_ceff_4ea0_9b27_0a3a ...
- Python Post img
from poster.encode import multipart_encode from poster.streaminghttp import register_openers import ...
- NLP入门(八)使用CRF++实现命名实体识别(NER)
CRF与NER简介 CRF,英文全称为conditional random field, 中文名为条件随机场,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机 ...
- memcpy实现
typedef unsigned int size_t; void * my_memcpy ( void *dest, const void *src, size_t num ) { void* re ...