用Docker容器进行IoT开发

Mrexamo · · 4223 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

随着IoT新的硬件平台和开发板的不断更新,SDK交付越来越多地转向零碎化以及“按需组装”解决方案。大多数的硬件公司很难提供能够正常运行的Software Development Kits (SDKs)。 Docker为硬件平台提供了实现简单部署打包SDK环境的机会,这是一个巨大的飞跃。这是第一个轻便的模式,跨操作系统、具有一致的工具和便于与他人分享的机制。 想了解更多关于物联网和Docker的深度分享请点击这[Rapidly develop Internet of Things apps with Docker Containe][1] 这将如何运行呢? 为了说明Docker是如何简化这些环境的交付,让我们来看下我们为esp8266项目开发的Docker容器。这个容器在docker hub [esp8266-dev.][2]共享。关于如何构建这个SDK的环境可以查看[ansible-esp8266-role ][3],它用于引导程序。 开始之前,你需要在你的系统上安装Docker,在我的例子中我使用运行在OSX和Windows上的 [boot2docker][4] 。 理解boot2docker的第一件事是,你/用户在OSX上的文件夹在boot2docker虚拟机被设置为共享。这将使得重要的数据能够非常容易的从OSX输入到你的Docker容器中。你也可以参考boot2docker 项目中的 [VirtualBox Guest Additions][5],了解它是如何工作的。 在我的例子中,我使用一个基于[esp8266/source-code-examples][6]的项目作为基本示例。 添加一个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][7]时做的。 总之我们已经安装了boot2docker,至少构建了一个esp8266项目,并且摆弄了复杂的SDK安装。在我看来这在缩短构建硬件项目的时间、简化复杂SDK环境的交付方面是一个巨大的进步。 希望爱特梅尔公司和德州仪器将来也使用Docker。 本文由丁麒伟编译整理,转载自时速云。原文链接:http://blog.tenxcloud.com/?p=737 [1]: http://www.ibm.com/developerworks/mobile/library/iot-docker-containers/index.html [2]: https://hub.docker.com/r/wolfeidau/esp8266-dev/ [3]: https://github.com/wolfeidau/ansible-esp8266-role/blob/master/tasks/main.yml [4]: http://boot2docker.io/ [5]: https://github.com/boot2docker/boot2docker/blob/master/README.md#virtualbox-guest-additions [6]: https://github.com/esp8266/source-code-examples/tree/master/basic_example [7]: https://github.com/wolfeidau/esp8266-led-lamp

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4223 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传