• 操作系统 ubuntu22.04

  • 准备:docker、docker::ROS1-Noetic Image

  • 安装软件:docker、vscode

1.安装Docker

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 启动 Docker 服务并设置开机自启

# 启动 Docker
sudo systemctl start docker
# 设置开机自启(重启服务器后自动运行,生产环境必备)
sudo systemctl enable docker
# 验证 Docker 服务状态(显示 active (running) 即为正常)
sudo systemctl status docker
  • 验证 Docker 安装成功

sudo docker run --rm hello-world

2.安装Portainer 和 ROS1

  • Portainer(Docker的GUI管理界面)

docker pull docker.xuanyuan.run/portainer/portainer-ce:latest
  • ROS1::noetic

docker pull docker.xuanyuan.run/osrf/ros:noetic-desktop-full

3.启动容器

  • portainer

# 1. 创建数据卷(持久化配置,避免重启后丢失)
docker volume create portainer_data

# 2. 启动 Portainer 容器(核心:镜像名替换为私有源)
docker run -d -p 9000:9000 -p 9443:9443 \
  --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  docker.xuanyuan.run/portainer/portainer-ce:latest
  • ros1

xhost +local:root
docker run -it \
  --name ros1-noetic \
  --net=host \
  --privileged=true \
  --env="DISPLAY" \
  --env="QT_X11_NO_MITSHM=1" \
  --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
  --volume="/home/xuejun/ros1_ws:/root/ros1_ws:rw" \
  --restart=unless-stopped \
  docker.xuanyuan.run/osrf/ros:noetic-desktop-full

4.进入容器

docker exec -it ros1-noetic bash

使用Vscode就可以连接该容器实现ROS1开发