V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
Mrexamo
V2EX  ›  云计算

用 Docker 容器进行 IoT 开发

  •  
  •   Mrexamo · 2015-09-16 17:47:26 +08:00 · 2266 次点击
    这是一个创建于 3359 天前的主题,其中的信息可能已经有所发展或是发生改变。

    随着 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 。

    oott123
        1
    oott123  
       2015-09-16 19:00:10 +08:00 via Android
    怎么一股翻译腔,也不标个来源…
    oott123
        2
    oott123  
       2015-09-16 19:02:38 +08:00 via Android
    喔,原来是某云的软文…
    mlhorizon
        3
    mlhorizon  
       2015-09-16 22:30:49 +08:00
    Atmel 和 TI 叫起来舒服多了,中文名好别扭。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1130 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:58 · PVG 02:58 · LAX 10:58 · JFK 13:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.