用 Docker 容器进行 IoT 开发

2015-09-16 17:47:26 +08:00
 Mrexamo

随着 IoT 新的硬件平台和开发板的不断更新, SDK 交付越来越多地转向零碎化以及“按需组装”解决方案。大多数的硬件公司很难提供能够正常运行的 Software Development Kits (SDKs )。

Docker 为硬件平台提供了实现简单部署打包 SDK 环境的机会,这是一个巨大的飞跃。这是第一个轻便的模式,跨操作系统、具有一致的工具和便于与他人分享的机制。

想了解更多关于物联网和 Docker 的深度分享请点击这里Rapidly develop Internet of Things apps with Docker Containers

这将如何运行呢?

为了说明 Docker 是如何简化这些环境的交付,让我们来看下我们为 esp8266 项目开发的 Docker 容器。这个容器在 docker hub esp8266-dev.共享。关于如何构建这个 SDK 的环境可以查看ansible-esp8266-role ,它用于引导程序。

开始之前,你需要在你的系统上安装 Docker ,在我的例子中我使用运行在 OSX 和 Windows 上的 boot2docker

理解 boot2docker 的第一件事是,你 /用户在 OSX 上的文件夹在 boot2docker 虚拟机被设置为共享。这将使得重要的数据能够非常容易的从 OSX 输入到你的 Docker 容器中。你也可以参考 boot2docker 项目中的 VirtualBox Guest Additions,了解它是如何工作的。

在我的例子中,我使用一个基于esp8266/source-code-examples 的项目作为基本示例。
添加一个 Dockerfile 到这个项目,请注意,我更新了 WORKDIR 来匹配我的 ESP 项目 path 。

FROM wolfeidau/esp8266-dev:1.1.0

# add all the SDK stuff to the PATH
ENV PATH=$PATH:/opt/Espressif/crosstool-NG/builds/xtensa-lx106-elf/bin

# Path which contains your esp8266 project source code
WORKDIR /Users/markw/Code/Systems/esp8266-led-lamp

# pass -v /Users:/Users to ensure your shared folder is available within
# the container for builds.
VOLUME /Users

USER ubuntu

然后你 built 你的容器并运行:

docker build -t esp8266-build .

然后你想运行如下代码:

docker run -v /Users:/Users -i -t esp8266-build make

现在检查你的 firmware 目录,应该有文件需要 flash 你的 esp2866 项目。

如果你想在容器内运行:

docker run -v /Users:/Users -i -t esp8266-build bash

这个项目是我在esp8266-led-lamp时做的。

总之我们已经安装了 boot2docker ,至少构建了一个 esp8266 项目,并且摆弄了复杂的 SDK 安装。在我看来这在缩短构建硬件项目的时间、简化复杂 SDK 环境的交付方面是一个巨大的进步。

希望爱特梅尔公司和德州仪器将来也使用 Docker 。

2165 次点击
所在节点    云计算
3 条回复
oott123
2015-09-16 19:00:10 +08:00
怎么一股翻译腔,也不标个来源…
oott123
2015-09-16 19:02:38 +08:00
喔,原来是某云的软文…
mlhorizon
2015-09-16 22:30:49 +08:00
Atmel 和 TI 叫起来舒服多了,中文名好别扭。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/221206

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX