# esp32-idf-docker **Repository Path**: zhao-jihai/esp32-idf-docker ## Basic Information - **Project Name**: esp32-idf-docker - **Description**: ESP32-IDF的docker环境的搭建,避免反复搭建环境 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-10-24 - **Last Updated**: 2025-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # esp32-idf-docker esp32-idf的docker环境搭建方法,搭建好了可以导报成镜像,方便使用不用反复搭建环境 相关软件百度云下载地址:链接:https://pan.baidu.com/s/10XoBVHFVqLDHMgDxYklBDQ?pwd=ibe7 # 一、安装WSL ## **1. 检查开启CPU虚拟化和虚拟机平台** 打开任务管理器,点击性能,查看CPU虚拟化的状态,如果没有打开,进BISO打开, ![1698147907005](image/README/1698147907005.png) ## 2、启用windows虚拟化平台 ![1698147846614](image/README/1698147846614.png) ## 3、更新WSL。在Powershell中执行下列命令: ``` wsl --set-default-version 2 wsl --update wsl --status ``` # 二、安装Ubuntu 22.04 ## 1、在应用商店中直接搜索安装即可。![1698148713700](image/README/1698148713700.png) 安装成功后,直接打开就进入了Ubuntu系统的命令行模式,熟悉的配色 ![1698148770348](image/README/1698148770348.png) C盘空间不足的可以把系统搬出C盘 打开终端(Powershell),输入下列命令:wsl --list --all。如果Ubuntu的STATE是Running,输入下列命令将其暂停:wsl --shutdown 。然后去要转移到的盘新建一个文件夹,回到终端输入下列命令:wsl --export Ubuntu-22.04(根据自己版本填写)。迁移至其他盘。在终端输入下列命令:wsl --unregister 名称,然后重新导入WSL并安装在目标盘:wsl --import 版本 导入位置 。(未验证,我没搬) 换国内的源,安装软件会快些,近期不用系统,只是用内核,可以不搞, 输入 ``` sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak ``` 备份原来的软件源,然后输入 ``` sudo nano /etc/apt/sources.list ``` 编辑软件源。下面是中科大的源,注释原有源后粘贴入即可(注:我在这里为了加快更新速度,注释了镜像源,如有需要可自行取消注释)。 ``` deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse #deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse #deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse #deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse #deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse #deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse ``` ## 2、安装usbipd,这个是能否在Docker中直接下载程序和串口通信的关键 windows安装包在exe文件夹下,点击安装即可。 linux安装 ``` sudo apt update sudo apt upgrade sudo apt install linux-tools-generic hwdata ``` ``` sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20 ``` 在powershell中查看,串口的BUSID,后面需要用这个绑定 ``` usbipd wsl list ``` ![1698149371687](image/README/1698149371687.png) 现在是两个窗口,左边是win11,右边是ubuntu22.04,双系统愉快的在一起了。可以看到COM4就是连接ESP32-S3的串口,BUSID:7-2 在win11窗口将USB绑定到WSL上,重启电脑需要重启绑定,7-2需要改成实际使用的USB,以下命令需要管理员运行 ``` usbipd bind -b 7-2 ``` ![1698149596937](image/README/1698149596937.png) 把USB映射到Ubuntu 22.04使用,热插播需要重新输入命令,7-2需要改成实际使用的USB ``` usbipd wsl attach --busid 7-2 ``` ``` ``` # 三、安装docker ## 1、安装docker应用程序 修改镜像的安装位置 ![1699064290387](image/README/1699064290387.png) 修改 ![1699064272419](image/README/1699064272419.png) ![1699257636407](image/README/1699257636407.png) ## 2、导入镜像 进入镜像所在的目录,执行命令 ``` docker load -i .\ubuntu-idf5.1.1.tar ``` ## 3、给容器分配相应的资源,创还能容器 下载器的USB已经从windows的COM5映射到了Ubuntu22.04的ttyUSB0,把串口一块映射进入。根据镜像创建容器: ``` docker run -it --privileged=true --device /dev/ttyUSB0 -v d:\WorkSpaces\ESP_Projects:/mnt/esp_projects --name esp32-idf5.1 esp32-idf5.1.1-image /bin/bash ``` ``` ``` ``` docker exec -it esp32-idf5.1 /bin/bash ``` # 四、用VScode进行开发 ![1699327447171](image/README/1699327447171.png)、 1、安装插件 2、连接到容器,连接之前确定容器运行中 ![1699327641507](image/README/1699327641507.png) 3、vscode打开远程连接,附到正在运行的容器中。进入后需要重新配置esp-idf的插件。