ESP32教程之三:搭建Linux开发环境(使用docker彻底解决所有问题)

一、摘要

其实不论在Linux还是Windows上搭建ESP32开发环境,都有依赖问题,导致环境搭建浪费大量时间,甚至最终还是失败,这是个痛点,让我们很烦躁,我们一直致力于ESP32开发的研究,本篇文章先彻底解决Linux开发环境搭建的所有问题(使用docker技术),之后会彻底解决Windows开发环境问题。

二、什么是docker?

docker是一种虚拟化技术,表面上看与虚拟机一样,是一个虚拟的系统,事实上他远远比一个操作系统消耗的资源少,因为docker只是一个Linux系统的一个服务进程。

三、为什么能解决所有Linux开发环境的问题?

docker是一种虚拟机技术,所以只要做一次好的ESP32的Linux环境,然后把这个环境做成一个docker镜像,那么不论你是什么样的Linux系统,只要你安装一个docker软件,然后使用做好的这个镜像,开启docker服务,那么你就有了一个完美的开发环境。

四、安装docker。

以ubuntu为例,安装docker:

step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

其他的Linux系统自行百度搜索即可快速安装。
注:如果安装缓慢,可以修改安装源,也可以百度。

五、获取esp-idf环境镜像。

我们提供了一个制作好的esp32-idf的docker镜像,名字为:idf_v4x_full_v3.tar。
百度网盘地址:

链接:https://pan.baidu.com/s/1u-5FiTGH51SuhrL0eOs_4g 
提取码:z8e9 

六、创建容器,使用docker进行开发。

注:代码包加速拉取参考文章:怎么加速拉取github代码包(以ESP-IDF为例)
(1)加载镜像,创建容器。
加载镜像命令:sudo docker load -i idf_v4x_full_v3.tar
在这里插入图片描述
查看镜像:sudo docker image ls
在这里插入图片描述
使用镜像创建容器:sudo docker run -it -d d2098b4ed96c,其中d2098b4ed96c就是刚才加载的docker镜像的ID。
在这里插入图片描述
查看容器:sudo docker ps
在这里插入图片描述

注:容器需要使用到网络端口号,所以docker命令的运行需要超级权限,如果感觉麻烦可以使用Linux别名命令alias sdocker="sudo docker",之后直接使用sdocker即可。
在这里插入图片描述

(2)使用容器环境进行esp-idf开发。
(2.1)直接使用内部的esp-idf代码包。
在容器内部,我们已经提供了esp32-idf开发的代码包(已为v4.3版本),在目录下面,可以使用git pull进行与github进行同步。
使用命令sudo docker exec -it dccbce0f4778 /bin/bash,其中是刚才创建容器的ID号。
在这里插入图片描述
出现如下终端,说明成功进入容器,
在这里插入图片描述
到一个esp32-idf的一个例程下面输入 idf.py menuconfig,就会弹出如下配置界面。
在这里插入图片描述
在这里插入图片描述

(2.2)挂在外部的esp-idf代码包。
如果在宿主机里面有了esp-idf的软件包,可以在创建容器的时候,把这个路径覆盖到容器的一个目录下面,使用命令:sudo docker run -it -v 宿主机路径:容器目录 -d d2098b4ed96c
到容器的目录下面就能看到宿主机的代码包,然后就可以进行继续开发了。
在这里插入图片描述
在这里插入图片描述
可以看到我们已经成功的把宿主机的目录挂载到容器中,
在这里插入图片描述
注:
(1)也可以把多个宿主机的目录覆盖到容器中,只要加-v选项,比如可以把宿主机的/dev覆盖到容器的/dev,此时,就可以在容器中使用idf.py flash命令直接进行烧写代码。
由于/dev/下面都是设备文件所以,进行/dev覆盖的时候,还需要加参数--privileged

sudo docker run -it --privileged -v /dev:/dev -d d2098b4ed96c

(2)docker可以使用一个镜像创建无数多容器,容器使用还有很多其他操作,百度即可。
停止容器命令:docker kill 容器ID
删除容器命令:docker rm 容器ID

七、总结。

(1)安装docker软件。
(2)下载镜像环境包。
(3)加载docker镜像。
(4)创建容器。
(5)进入容器。
(6)进行开发。

八、视频教程。

如果大伙还想详细了解过程,可以观看下面视频教程:
https://edu.51cto.com/course/27473.html

QQ交流群:454308668

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值