1. 为什么选择Docker化AI开发环境在嵌入式AI开发领域环境配置一直是让人头疼的问题。记得我第一次尝试在地平线旭日X3芯片上部署模型时光是环境依赖就折腾了整整三天。各种库版本冲突、系统权限问题层出不穷直到尝试了Docker方案才真正体会到什么叫开箱即用。Docker的核心价值在于环境隔离和一致性。想象一下你开发时用的Ubuntu 18.04而生产环境是CentOS 7传统方式下光解决系统差异就够喝一壶的。而通过地平线提供的Docker镜像所有依赖都预先配置妥当就像把整个开发环境打包成一个应用程序在任何支持Docker的机器上都能一键运行。实测下来使用地平线官方镜像有三大优势依赖全搞定从CUDA到OpenCV所有AI开发需要的库都已预装环境可复用团队共享同一个镜像彻底告别在我机器上能跑的问题快速回滚如果升级出现问题随时可以退回之前的镜像版本2. 开发环境准备2.1 硬件与软件基础我建议使用以下配置作为开发机操作系统Ubuntu 18.04/20.04 LTS实测最稳定存储空间至少预留50GB空间镜像开发包约15GB内存建议16GB以上模型转换比较吃内存需要提前下载两个关键文件地平线OpenExplorer开发包如horizon_xj3_open_explorer_v2.0.0_20230615.tar.gzDocker镜像包如docker_cpu_openexplorer_ubuntu_18.04_v2.1.2.tar提示建议从地平线开发者社区下载最新版本老版本可能存在已知问题。2.2 Docker安装与配置如果你的系统还没装Docker跟着我做# 安装必要工具 sudo apt update sudo apt install -y curl gnupg2 # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加Docker源 sudo add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io安装完成后需要配置用户权限避免每次都要sudosudo usermod -aG docker $USER newgrp docker # 立即生效验证安装是否成功docker run hello-world看到Hello from Docker!说明环境就绪。3. 加载地平线Docker镜像3.1 镜像导入实战假设你已经把下载的镜像包放在~/Horizon目录下cd ~/Horizon docker load -i docker_cpu_openexplorer_ubuntu_18.04_v2.1.2.tar导入成功后检查镜像列表docker images应该能看到类似这样的输出REPOSITORY TAG IMAGE ID CREATED SIZE openexplorer cpu-ubuntu18.04 a1b2c3d4e5f6 3 months ago 8.7GB3.2 理解镜像与容器这里有个关键概念要搞清楚镜像相当于安装光盘包含完整的文件系统容器相当于运行中的系统基于镜像创建一个镜像可以创建多个容器就像你可以用同一张光盘安装多台电脑。地平线的镜像已经预装了模型转换工具链hb_mapper等示例模型和代码Python 3.6/3.8环境OpenCV 4.2等视觉库4. 创建开发容器4.1 启动第一个容器最关键的启动命令长这样docker run -it -d \ -v /home/yourname/Horizon/horizon_xj3_open_explorer_v2.0.0/ddk/samples:/data \ --name x3_dev \ a1b2c3d4e5f6参数解析-it交互模式终端-d后台运行-v把本地的samples目录挂载到容器的/data下--name给容器起个有意义的名字最后是镜像ID4.2 容器操作指南常用命令备忘# 查看运行中的容器 docker ps # 进入容器就像SSH登录 docker exec -it x3_dev bash # 停止容器 docker stop x3_dev # 重启容器 docker start x3_dev特别提醒修改容器内的文件非挂载目录会在容器删除后丢失所以重要代码一定要放在挂载的/data目录下。5. 开发环境验证5.1 基础功能测试进入容器后先做个快速验证# 检查模型转换工具 hb_mapper --version # 测试Python环境 python3 -c import cv2; print(cv2.__version__) # 查看挂载目录 ls /data5.2 典型问题排查遇到过这些问题试试我的解决方案GPU不可用确认安装了nvidia-docker并添加--gpus all参数权限问题在docker run时添加--user $(id -u):$(id -g)中文乱码在容器内安装中文字体apt install -y fonts-wqy-zenhei6. 进阶配置技巧6.1 开发效率优化分享几个实用技巧别名设置在~/.bashrc中添加alias x3envdocker exec -it x3_dev bash端口映射开发Web应用时添加-p 8080:8080参数多终端接入使用docker exec创建多个会话6.2 镜像定制方案官方镜像可能缺少某些你需要的工具可以这样扩展FROM openexplorer:cpu-ubuntu18.04 RUN apt update apt install -y \ htop \ tmux \ your-custom-package ENV PYTHONPATH/opt/hobot/your_path:$PYTHONPATH然后构建新镜像docker build -t my_x3_env .7. 实际开发工作流7.1 模型开发全流程基于这个环境的标准开发流程在/data目录下开发模型代码使用hb_mapper转换模型通过挂载目录获取转换后的模型在板端部署测试7.2 团队协作建议我们团队的最佳实践统一使用相同版本的Docker镜像通过Git管理/data下的代码使用docker-compose管理复杂环境version: 3 services: x3_dev: image: openexplorer:cpu-ubuntu18.04 volumes: - ./samples:/data working_dir: /data记得定期清理无用容器节省空间docker system prune -f