ubantu 20.04 docker运行orbslam3
时间: 2025-06-18 16:34:17 浏览: 9
### 安装依赖
为了确保 Docker 中的 ORB-SLAM3 能够正常工作,在宿主机上需要先安装一些必要的软件包。这包括但不限于 `nvidia-docker` 和其他图形驱动支持工具,以便能够处理 GUI 应用程序。
```bash
sudo apt-get update && \
sudo apt-get install -y nvidia-driver-470 nvidia-container-toolkit
```
上述命令会更新本地包列表并安装 NVIDIA 驱动以及容器工具集[^1]。
### 创建 Dockerfile 文件
创建一个新的文件名为 `Dockerfile` 的文档来定义构建所需环境:
```dockerfile
FROM ubuntu:20.04
# 设置代理变量 (如果需要的话)
ARG HTTP_PROXY
ARG HTTPS_PROXY
ENV http_proxy=${HTTP_PROXY}
ENV https_proxy=${HTTPS_PROXY}
RUN apt-get update && apt-y --no-install-recommends \
cmake git libeigen3-dev libsuitesparse-dev qtbase5-dev \
libopencv-dev python3-pip wget unzip ninja-build doxygen graphviz
WORKDIR /root/
# 下载和解压 ORB_SLAM3 源码
RUN mkdir orb_slam_3 && cd orb_slam_3 && \
wget https://github.com/UZ-SLAMLab/ORB_SLAM3/archive/refs/tags/v3.zip && \
unzip v3.zip && rm v3.zip
COPY build.sh /root/orb_slam_3/
RUN chmod +x /root/orb_slam_3/build.sh && \
cd /root/orb_slam_3/ORBSLAM3-master && \
../build.sh
```
此脚本基于官方 Ubuntu 20.04 映像设置了一个适合编译 ORB-SLAM3 的开发环境,并下载了最新版本的源代码进行编译[^2]。
注意:这里假设有一个名为 `build.sh` 的 shell script 存在于当前目录中用于配置 CMake 并启动实际的编译过程。
### 构建 Docker Image
使用下面这条指令可以依据前面准备好的 Dockerfile 来创建自定义映像:
```bash
sudo docker build -f Dockerfile -t orbslam3gl --build-arg HTTP_PROXY=$HTTP_PROXY --build-arg HTTPS_PROXY=$HTTPS_PROXY .
```
该操作将会读取指定路径下的 Dockerfile 文件内容,按照其中指示逐步执行直至完成整个镜像制作流程[^3]。
### 启动 Container 实例
最后一步就是利用刚刚建立起来的新映像实例化一个正在运行中的 container:
```bash
xhost +local:docker
sudo docker run -it --rm --gpus all -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY orbslam3gl bash
```
这段命令允许 X server 接受来自任何用户的连接请求(`xhost`);接着以交互模式启动新容器(`run -it`),同时分配 GPU 访问权限给它(`--gpus all`)并将显示端口转发到宿主机器上的 X server (`-v ... -e DISPLAY`).
这样就可以在 Ubuntu 20.04 上成功地通过 Docker 运行 ORB-SLAM3 项目了。
阅读全文
相关推荐

















