系统:bookworm或者ubuntu24都行
一、下载docker和拉取ros:noetic镜像
ubuntu
用鱼香ros脚本安装docker并拉取ros:noetic镜像: https://fishros.org.cn/forum/topic/20/小鱼的一键安装系列
wget http://fishros.com/install -O fishros && . fishros
选择docker安装ros noetic,arm64版本。
bookworm
首先安装docker:安装Docker | Raspberry Pi 树莓派 (官网25年2月更新)
# 卸载旧版本(如果有):
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done# 添加 Docker 官方 GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker_aliyun.asc
sudo chmod a+r /etc/apt/keyrings/docker_aliyun.asc# 添加仓库到 Apt 源:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker_aliyun.asc] http://mirrors.aliyun.com/docker-ce/linux/debian \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker_aliyun.list > /dev/null
sudo apt-get update
然后安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
推荐执行下面的指令以方便管理。否则每次运行docker指令还要加上sudo,很麻烦。
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
然后换源,我网上随便找了一个,不知道之后还能不能用:教程 | 2025国内可用Docker镜像源配置指南(文末命令一键执行)_docker镜像库国内源 2025-CSDN博客
创建配置文件目录(已存在可跳过)
sudo mkdir -p /etc/docker 通过命令行生成配置(推荐新手)
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com"]
}
EOF 应用配置(必须执行)
sudo systemctl daemon-reload
sudo systemctl restart docker
最后,拉取arm64版本的docker镜像(ubuntu20)
sudo docker pull ros:noetic
二、创建容器
建名为ros_docker的容器:
sudo docker run -dit --name=ros_docker -v /dev:/dev -v /home/uav:/home/uav -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -w /home/uav --privileged --net=host ros:noetic
参数含义参考Ubuntu通过docker安装任意版本ROS + 一键启动教程_ros docker-CSDN博客
最后设置一键进入ros_docker的脚本:
touch ~/.docker/setup/ros_docker_exec
将以下内容复制到ros_docker_exec文件中:
xhost +local:docker
docker exec -it ros_docker /bin/bash "$@"
然后设置PATH环境变量:
echo 'export PATH=$PATH:/home/uav/.docker/setup' >> ~/.bashrc
然后就可以进入docker了。先启动docker容器(开机只需要启动一次)
docker start ros_docker
再进入启动的容器:
ros_docker_exec
初次进入容器,需要设置一下ROS的环境变量:
# 在ros_docker容器内
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc