嵌入式也用docker

本文簡單的介紹如何將docker運用到嵌入式領域

docker常用於伺服器後端等領域,但其實嵌入式領域裡很多交叉工具鏈編譯環境在不同平台搭建也是很麻煩的,所以決定嘗試是否能在嵌入式領域試用一下docker


這裡選擇esp32作為實驗對象,電腦操作系統:windows,容器操作系統:ubuntu

實現執行命令:

1.安裝docker2.下載鏡像 pull image3.編譯代碼 docker run -v /d/codespace/hello_world:/esp/project -it frankiezeng/esp32:idf make -f /esp/project/Makefile

真正的操作只需要上面三步就可以完成


列一下詳細探索的步驟:

1. 下載docker的windows社區版

Docker Store?

store.docker.com

2. 安裝完成後,由於docker的國外鏡像速度比較慢,設置一個國內的鏡像地址,在daocloud註冊一個賬號就可以免費獲得國內的加速地址

DaoCloud - 企業級雲計算領域的創新領導者?

www.daocloud.io圖標

右鍵選擇settings

在mirros里輸入鏡像地址

3. 在windows拉取esp32的鏡像

docker pull frankiezeng/esp32:idf

4.等待下載完成後,查看images

docker images

5.試運行一下這個image

docker run -it frankiezeng/esp32:idf

6.試著編譯一下idf和adf下面的example

編譯成功

編譯成功

7.試著在windows下面直接編輯

docker run -it frankiezeng/esp32:idf make -f /esp/esp-adf/examples/get-started/play_mp3/Makefile

這個過程相當於docker先用了幾百ms啟動ubuntu,然後在裡面編譯好後退出ubuntu

8.試著將usb埠掛載進容器,最後發現不行。。

Device Option not mapping Serial Port COMx to container · Issue #478 · docker/for-win?

github.com圖標

9.試著將文件共享到容器里

run -it -v /d/codespace:/esp/project frankiezeng/esp32:idf

共享成功

10.在windows下面編譯利用docker編譯

docker run -v /d/codespace/hello_world:/esp/project -it frankiezeng/esp32:idf make -f /esp/project/Makefile

但是這裡有個問題,每次都會全部重新編譯代碼。。


dockerfile的github地址:

whyengineer/esp32_docker?

github.com圖標


結論是基本可行,然後進容器編譯,而不是外部編譯,跨平台性能良好,基本完全忽略工具鏈搭建細節。

推薦閱讀:

容器中生成coredump file,並對coredump file做限制
深入分析 Docker 鏡像原理
Docker學習資源匯總
Docker 有什麼優勢?
Percona XtraDB Cluster docker.md

TAG:極客Geek | 嵌入式軟體開發 | Docker |