news 2026/4/23 22:35:18

保姆级教程:手把手解决Apollo 7.0.0在Ubuntu 20.04下的Docker权限与网络下载报错

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:手把手解决Apollo 7.0.0在Ubuntu 20.04下的Docker权限与网络下载报错

保姆级教程:手把手解决Apollo 7.0.0在Ubuntu 20.04下的Docker权限与网络下载报错

当你第一次在Ubuntu 20.04上尝试运行Apollo 7.0.0时,可能会遇到一系列令人沮丧的报错信息。这些报错看似复杂,但实际上大多源于两个核心问题:Docker权限配置不当和网络连接不稳定。本文将带你一步步解决这些常见问题,让你能够顺利搭建Apollo开发环境。

1. 环境准备与基础配置

在开始之前,确保你的系统满足以下基本要求:

  • Ubuntu 20.04 LTS(推荐使用干净安装)
  • 至少16GB内存(32GB更佳)
  • 100GB可用磁盘空间
  • NVIDIA显卡(需支持CUDA)

1.1 Docker安装与配置

Docker是Apollo运行的基础环境,正确的安装和配置至关重要。首先安装Docker CE版本:

sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io

安装完成后,配置Docker用户组以避免频繁使用sudo:

sudo groupadd docker sudo usermod -aG docker $USER newgrp docker

验证配置是否成功:

docker run hello-world

如果看到"Hello from Docker!"消息,说明配置正确。

1.2 NVIDIA驱动与CUDA安装

Apollo需要CUDA支持,首先安装NVIDIA驱动:

ubuntu-drivers devices sudo ubuntu-drivers autoinstall

安装CUDA Toolkit 11.1(Apollo 7.0.0推荐版本):

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt-get update sudo apt-get -y install cuda-11-1

配置环境变量:

echo 'export PATH=/usr/local/cuda-11.1/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

2. 解决Docker容器启动问题

2.1 容器启动失败排查

当你执行./docker/scripts/dev_start.sh时,可能会遇到以下错误:

Error response from daemon: Container 0ab947bcd84aa90d9e3328274ca2a40697a8e3eb84bba59c716a41bacc03112d is not running

解决方法:

  1. 首先查看所有容器状态:
docker ps -a
  1. 找到Apollo相关容器(通常名为apollo_dev_*),记录其CONTAINER ID

  2. 启动该容器:

docker start [CONTAINER_ID]

如果容器不存在,则需要重新运行dev_start.sh:

./docker/scripts/dev_start.sh

2.2 解决Docker权限问题

如果dev_start.sh需要sudo才能运行,说明Docker用户组配置未生效。检查当前用户是否在docker组:

groups

如果输出中没有docker,尝试以下步骤:

  1. 重新添加用户到docker组:
sudo usermod -aG docker $USER
  1. 完全注销并重新登录系统

  2. 验证:

docker run hello-world

如果仍然需要sudo,可能是Docker Desktop安装冲突,考虑卸载Docker Desktop:

sudo apt-get purge docker-desktop

然后重新安装Docker CE并配置用户组。

3. 解决网络下载问题

3.1 手动下载依赖包

Apollo构建过程中需要下载多个依赖包,由于网络问题可能导致下载失败。常见报错包括zlib、rules_java等包下载失败。

解决方法:

  1. 识别失败的包(从错误信息中获取包名和URL)
  2. 手动下载包到本地
  3. 将包移动到Apollo的缓存目录

例如,对于zlib-1.2.11.tar.gz:

  1. 手动下载:
wget https://github.com/madler/zlib/archive/v1.2.11.tar.gz -O zlib-1.2.11.tar.gz
  1. 移动到缓存目录:
mkdir -p ~/apollo/.cache/distdir mv zlib-1.2.11.tar.gz ~/apollo/.cache/distdir/
  1. 如果.cache目录不可见,显示隐藏文件:
ls -a ~/apollo/
  1. 如果无法写入,修改权限:
sudo chmod -R 777 ~/apollo

3.2 修改依赖配置文件

对于某些包,可能需要修改Apollo的依赖配置文件:

  1. 找到dependencies.bzl文件:
cd ~/apollo/.cache/bazel/$(ls ~/apollo/.cache/bazel)/external/rules_proto/proto/private sudo nano dependencies.bzl
  1. 修改zlib配置:
"zlib": { "sha256": "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff", "build_file": "@com_google_protobuf//:third_party/zlib.BUILD", "strip_prefix": "zlib-1.2.11", "urls": [ "https://github.com/madler/zlib/archive/v1.2.11.tar.gz", ], }
  1. 对于rules_java,修改grpc_python_deps.bzl:
cd ~/apollo/.cache/bazel/$(ls ~/apollo/.cache/bazel)/external/com_github_grpc_grpc/bazel sudo nano grpc_python_deps.bzl

添加以下内容:

if "rules_java" not in native.existing_rules(): http_archive( name = "rules_java", sha256 = "f5a3e477e579231fca27bf202bb0e8fbe4fc6339d63b38ccb87c2760b533d1c3", strip_prefix = "rules_java-981f06c3d2bd10225e85209904090eb7b5fb26bd", urls = [ "file:///home/$USER/apollo/.cache/distdir/rules_java-981f06c3d2bd10225e85209904090eb7b5fb26bd.tar.gz" ], )

4. 解决CUDA架构不兼容问题

4.1 检查GPU架构支持

构建过程中可能出现如下错误:

nvcc fatal : Unsupported gpu architecture 'compute_89'

检查支持的GPU架构:

nvcc --list-gpu-arch

如果输出中没有compute_89,说明CUDA版本与显卡不兼容。

4.2 升级CUDA版本

对于较新的NVIDIA显卡(如RTX 30/40系列),需要更高版本的CUDA:

  1. 卸载旧版CUDA:
sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*" "*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*"
  1. 安装CUDA 12.x:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt-get update sudo apt-get -y install cuda
  1. 更新环境变量:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
  1. 验证安装:
nvcc --version nvcc --list-gpu-arch

现在应该能看到compute_89等新架构支持。

5. 完整构建流程验证

5.1 启动开发容器

cd ~/apollo ./docker/scripts/dev_start.sh ./docker/scripts/dev_into.sh

5.2 构建Apollo

在容器内执行:

./apollo.sh build_opt_gpu

构建过程可能需要1-2小时,取决于硬件配置。如果遇到新的下载失败错误,重复第3节的手动下载方法。

5.3 常见构建问题解决

  1. 内存不足:增加swap空间或减少并行构建线程:
./apollo.sh build_opt_gpu --local_resources 2048,1.0,1.0
  1. 磁盘空间不足:清理Docker缓存和未使用的镜像:
docker system prune -a
  1. Python包缺失:在容器内安装所需Python包:
pip install -r /apollo/requirements.txt

6. 优化与性能调优

6.1 加速后续构建

使用Bazel缓存:

echo 'build --disk_cache=/apollo/.cache/bazel-disk-cache' >> /apollo/.bazelrc

6.2 监控构建资源使用

watch -n 1 "free -h && nvidia-smi && df -h"

6.3 选择性构建模块

如果只需要构建特定模块:

./apollo.sh build_opt_gpu modules/planning

6.4 清理构建缓存

./apollo.sh clean bazel clean --expunge
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 22:32:30

免Root玩机新姿势:VirtualXposed虚拟框架实战与模块应用全解析

1. VirtualXposed是什么?为什么你需要它 每次看到别人用各种炫酷的模块修改微信界面、自动抢红包、屏蔽广告,你是不是也心痒痒?但一想到要Root手机、解锁BL,还要冒着变砖的风险,大多数人就望而却步了。VirtualXposed的…

作者头像 李华
网站建设 2026/4/23 22:30:47

解决虚拟机启动报:此主机支持AMD-V,但AMD-V处于禁用状态

开启VMware虚拟机弹出以下异常解决方法:将SVM Mode设置成允许 解决步骤: 1,将电脑关机,然后进行启动,启动过程中多按delete(f1或者f2,不同电脑按键的方式有所不同)键,进入…

作者头像 李华
网站建设 2026/4/23 22:29:19

青蛙对话AI火了?这产品一周圈粉4万!

近日,一款名为"Ribbi"的AI工具在创意圈悄然走红。它没有复杂的界面,只有一个对话框和一只会吐槽的"青蛙"形象,却创下了上线封测一周内收获全球4万多名用户申请的纪录。Ribbi究竟做对了什么?简单对话&#xff…

作者头像 李华
网站建设 2026/4/23 22:29:18

Linux服务器监控:除了htop,如何用原生top命令定制你的专属‘仪表盘’(附内存/线程监控技巧)

Linux服务器监控:用原生top命令打造高效终端仪表盘 在服务器运维的世界里,监控工具就像驾驶舱里的仪表盘,而top命令则是这个仪表盘最基础却最强大的核心组件。不同于那些需要额外安装的图形化工具,top作为Linux系统原生自带的监控…

作者头像 李华