嵌入式也用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 Store2. 安裝完成後,由於docker的國外鏡像速度比較慢,設置一個國內的鏡像地址,在daocloud註冊一個賬號就可以免費獲得國內的加速地址
DaoCloud - 企業級雲計算領域的創新領導者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
8.試著將usb埠掛載進容器,最後發現不行。。
Device Option not mapping Serial Port COMx to container · Issue #478 · docker/for-win
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結論是基本可行,然後進容器編譯,而不是外部編譯,跨平台性能良好,基本完全忽略工具鏈搭建細節。
推薦閱讀:
※容器中生成coredump file,並對coredump file做限制
※深入分析 Docker 鏡像原理
※Docker學習資源匯總
※Docker 有什麼優勢?
※Percona XtraDB Cluster docker.md