简单四步開始树莓派上的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这个游戏的分数包含 ...
随机推荐
- Vue2.1.7源码学习
原本文章的名字叫做<源码解析>,不过后来想想,还是用“源码学习”来的合适一点,在没有彻底掌握源码中的每一个字母之前,“解析”就有点标题党了.建议在看这篇文章之前,最好打开2.1.7的源码对 ...
- 怎样用Java代码来把SSL的证书自己主动导入到Java的秘钥存储文件(keystore)
我们在开发或者使用SSL的过程中,非常多的软件须要我们提供java的keystore.特别是一些基于Java的中间件产品. 我们常规的做法是JDK自带的工具命令(keytool)去做.比方,以下的样例 ...
- C#程序集系列11,全局程序集缓存
全局程序集缓存(GAC:Global Assembly Cache)用来存放可能被多次使用的强名称程序集.当主程序需要加载程序集的时候,优先选择到全局程序集缓存中去找寻需要的程序集. 为什么需要全局程 ...
- 对话框上动态控件的创建、在Picture Control控件上显示图片
1 MFC对话框之上的动态控件的创建 对话框上的控件是MFC类的一个具体对象. 当在对话框之上使用静态控件时,可以根据类向导来为每个控件添加消息.响应函数以及变量. 当需要在对话框中动态的创建某个控 ...
- intrawebIW当作REST 服务端
intraweb15 该版本支持HTTPS.SYS通信. IW当作REST 服务端使用: procedure TIWServerController.IWServerControllerBaseExe ...
- Linux架构和目录-基础篇
1.Linux目录结构 2. /boot/ 存放系统内核文件,如vmlinuz,initrd,System.map等.其中, a. vmlinuz是可引导的.压缩的内核,“vm”即“Virtual M ...
- 学习node js 之微信公众帐号接口开发 准备工作之三
app.js文件介绍,因为也是初学,以下的内容是个人的理解,有些不正确的地方请评论中指证:以注解的形式说明. //依赖组件[模块]导入 var express = require('express') ...
- python的内存回收机制即gc模块讲解
最后容易造成内存问题的通常就是全局单例.全局缓存.长期存活的对象 引用计数(主要), 标记清除, 分代收集(辅助) 引用计数为0则会被gc回收.标记删除可以解决循环引用的问题.分代:0代--年轻代:1 ...
- Managed Debugging Assistant 'PInvokeStackImbalance' has detected a problem in 解决方案
because regular C functions work differently than the Windows API functions; their "calling con ...
- angular之interceptors拦截器
<!DOCTYPE html> <html ng-app="nickApp"> <head> <meta charset="UT ...