在x86/amd64的呆板上使用Docker运行arm64v8/ubuntu并安装ROS1

打印 上一主题 下一主题

主题 831|帖子 831|积分 2493

一、准备工作

主要是因为国内网络的问题,可能导致镜像拉取失败,解决办法参考:镜像加快
二、安装运行过程

2.1拉取镜像:

  1. sudo docker pull arm64v8/ubuntu:20.04
复制代码
这个是ubuntu的拉取指令,其他的也是类似。
2.2 运行镜像

为了在 AMD64 主机上运行 ARM64 容器,你需要安装 QEMU 并注册 binfmt 支持。以下是具体步调:
安装 QEMU

安装 QEMU 用户模式仿真器:

  1. sudo apt-get update
  2. sudo apt-get install -y qemu-user-static
复制代码
注册 binfmt:

Docker 提供了一个方便的镜像来注册 binfmt,可以使用以下下令:
  1. docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
复制代码
验证 QEMU 是否精确安装

你可以使用以下下令来验证:
  1. docker run --rm --privileged multiarch/qemu-user-static:register --reset
复制代码
运行 ARM64 容器

在安装和注册 QEMU 之后,你应该可以在 AMD64 主机上运行 ARM64 容器:
  1. sudo docker run --platform linux/arm64 -it arm64v8/ubuntu:20.04
复制代码
2.3 宿主机目录共享

在 Docker 中,可以通过挂载主机目录到容器内的方式实现目录共享。这通常是通过 -v 或 --mount 选项来实现的。以下是具体的步调和示例:
使用 -v 选项挂载目录

-v 选项用于挂载主机目录到容器内的目录。格式为:-v 主机目录:容器目录。
  1. sudo docker run --platform linux/arm64 -it -v /path/on/host:/path/in/container arm64v8/ubuntu:20.04 /bin/bash
复制代码
比方,将主机的 /home/user/shared 目录挂载到容器内的/mnt/shared目录:
  1. sudo docker run --platform linux/arm64 -it -v /home/user/shared:/mnt/shared arm64v8/ubuntu:20.04 /bin/bash
复制代码
使用 --mount 选项挂载目录

比方,将主机的 /home/user/shared 目录挂载到容器内的 /mnt/shared 目录:
  1. sudo docker run --platform linux/arm64 -it --mount type=bind,source=/home/user/shared,target=/mnt/shared arm64v8/ubuntu:20.04 /bin/bash
复制代码
通过这些方法,可以在 Docker 容器和宿主机之间共享目录,从而方便地在两者之间交换文件。
2.4 启动&删除容器

列出当前的全部容器:

  1. sudo docker ps -a
复制代码
启动指定的容器:

  1. sudo docker start -i CONTAINER ID
复制代码
或者使用容器名字

  1. sudo docker start -i 容器名字
复制代码
删除全部制止运行的容器

  1. sudo docker container prune
复制代码
删除特定容器

删除特定的容器,假设容器 ID 是 e5c2c5dabc12:
  1. sudo docker rm e5c2c5dabc12
复制代码
删除全部未使用的镜像、网络和挂载

  1. sudo docker system prune -a
复制代码
三、安装ROS1

步调1: 更新和安装根本工具

起首,在容器中更新软件包列表并安装一些根本的工具:
  1. apt-get update
  2. apt-get install -y curl gnupg2 lsb-release
复制代码
步调2: 添加ROS Noetic源

添加ROS源到APT源列表
  1. sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
复制代码
步调3: 添加ROS密钥并安装ROS Noetic



  • 1.添加 ROS 密钥:
  1. curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
复制代码


  • 2.更新软件包索引:
  1. apt-get update
复制代码


  • 3.安装桌面完整版
  1. apt-get install -y ros-noetic-desktop-full
复制代码
步调4: 初始化rosdep

安装完 ROS 后,需要初始化 rosdep:
  1. echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
  2. source ~/.bashrc
复制代码
步调5: 测试安装

  1. roscore
复制代码
这将启动 ROS 主节点。如果能够乐成启动,说明 ROS Noetic 已经安装和配置乐成。
四、遇到的问题

运行指令:
  1. docker run --rm --privileged multiarch/qemu-user-static:register --reset
  2. Unable to find image 'multiarch/qemu-user-static:register' locally
复制代码
是因为 multiarch/qemu-user-static:register 镜像未找到。我们可以先拉取这个镜像,然后再运行下令来注册 QEMU。
注意需要在注册QEMU之前,先运行这个指令:
  1. sudo docker pull multiarch/qemu-user-static
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表