前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用于ARM和Debian的ROS Docker镜像

用于ARM和Debian的ROS Docker镜像

作者头像
zhangrelay
发布2022-04-29 16:48:41
1.1K0
发布2022-04-29 16:48:41
举报

这里推荐两个链接:

1 Using ROS with Docker in macOS: https://www.xiaokeyang.com/blog/using_ros_with_docker_in_macos

2 Getting started with ROS and Docker:http://wiki.ros.org/docker/Tutorials/Docker

TL; DR:ARM和Debian对ROS的支持现在在官方DockerHub库中已经支持!

大家好!

您可能已经注意到,DockerHub开始支持amd64以外的其他架构[1]。所以扩展了dockerfile维护基础架构,用于官方的ROS映像,以支持arm。

此外,在重构时,还支持多种操作系统,即基于debian的ROS映像,同时也支持支持的ARM架构。要查看官方DockerHub库支持的套件,发行版和体系结构列表,您可以在此查看ROS的清单[2]:

github.com 5

搬运工库/官方镜像/ BLOB /主/库/ ROS
代码语言:javascript
复制
docker-library/official-images/blob/master/library/ros

# this file is generated via https://github.com/osrf/docker_images/blob/7ba58fc107b368d6409c22161070eb93e562f240/ros/create_dockerlibrary.py
 

Maintainers: Tully Foote <tfoote+buildfarm@osrfoundation.org> (@tfoote)
 

GitRepo: https://github.com/osrf/docker_images.git
 

################################################################################
 

# Release: indigo
 

########################################
 

# Distro: ubuntu:trusty
 

Tags: indigo-ros-core, indigo-ros-core-trusty
 

Architectures: amd64, arm32v7
 

GitCommit: 7ba58fc107b368d6409c22161070eb93e562f240
 

Directory: ros/indigo/ubuntu/trusty/ros-core
 

Tags: indigo-ros-base, indigo-ros-base-trusty, indigo
 

Architectures: amd64, arm32v7
 

GitCommit: 7ba58fc107b368d6409c22161070eb93e562f240
 

Directory: ros/indigo/ubuntu/trusty/ros-base
 

此文件已被截断。 显示全部

笔记:

  • 添加了新标签,通过附加后缀指定操作系统套件
    • 例如kinetic-ros-base-xenialkinetic-ros-base-jessie
  • 原始标签集没有变化,因为它们仍然指向同一个套件
    • 例如kinetic<=> kinetic-ros-base<=>kinetic-ros-base-xenial
    • 另外对于amd64从osrf / ros自动回购托管的标记图像也是如此
  • 目前,多架构ROS映像托管在独立的docker中心组织下
    • 例如docker pull arm64v8/rosORdocker pull arm32v7/ros:indigo
    • 您可以参考<arch>/ros:<tag>具体拉一个给定的架构
    • 或尝试临时清单启用测试滚动回购:docker pull trollin/ros
  • 即将到来,官方登记处将在内部谈判通过清单拉出的拱门
    • 如果docker-engine主机是arm64v8docker pull ros应该拉一个arm64v8图像
  • 有一些构建脚手架可以跟随ROS的多架构图像构建

这一切都是相当新的,所以如果你想开始学习更多,这里是一个相对较新的文章[3]:

创建并使用多架构泊坞窗图像 - Linux on Power

现在已经有一段时间了,Docker社区一直在努力支持多种操作系统和架构的复杂性。以下是由于这种多样性而产生的两个关键问题:新的码头工程用户倾向于...

当然,如果你想玩任何一个手臂图像,但没有覆盆子或其他手臂的平台放在一起,你可以很容易地通过qemu-user和binfmt支持模拟。通过将必要的binfmt支持内核模块和qemu-user静态二进制文件安装到主机,您可以在arm环境中运行命令,例如在amd64工作站上。这可能需要您的debian binfmt支持包的即将到来的修补程序,具体取决于您的分发,因此应该遇到运行时问题,您可以按照这里的说明[4]。

例如:

代码语言:javascript
复制

$ sudo apt install qemu-user-static
 

...
 

$ uname -a
 

Linux ubuntu 4.8.0-58-generic #63~16.04.1-Ubuntu SMP 
 

 Mon Jun 26 18:08:51 UTC 2017 
 

 x86_64 x86_64 x86_64 GNU/Linux
 

$ docker run -it arm64v8/ros:lunar-ros-core-stretch uname -a
 

Unable to find image 'arm64v8/ros:lunar-ros-core-stretch' locally
 

lunar-ros-core-stretch: Pulling from arm64v8/ros
 

774bc81cd4dd: Pull complete 
 

...
 

Digest: sha256:dd88dce3f840cc963a61881a1da4f36f1c66214dd1b0029fa433580a4f5a142f
 

Status: Downloaded newer image for arm64v8/ros:lunar-ros-core-stretch
 

Linux a2a63cc39389 4.8.0-58-generic #63~16.04.1-Ubuntu SMP
 

 Mon Jun 26 18:08:51 UTC 2017
 

 aarch64 GNU/Linux
 

$ docker run -it arm64v8/ros:lunar-ros-core-stretch cat /etc/os-release
 

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
 

NAME="Debian GNU/Linux"
 

VERSION_ID="9"
 

VERSION="9 (stretch)"
 

ID=debian
 

...
 

如果您发现图像有问题,请务必在这里打点票[5]:

docker_images - 用于保存由OSRF维护的停靠点图像定义的存储库

也不要忘了分享我们的官方回购[6],所以其他人可能会发现它!

最好的 @ruffsl

[1] https://github.com/docker-library/official-images#architectures-other-than-amd64 [2] https://github.com/docker-library/official-images/blob/master/library / ros 5 [3] https://developer.ibm.com/linuxonpower/2017/07/27/create-multi-architecture-docker-image/ 8 [4] https://github.com/computermouth/qemu- static-conf [5] https://github.com/osrf/docker_images 2 [6] https://hub.docker.com/_/ros/ 2

PS

因为arm32v7在Docker中心使用的云映像上游存在阻塞问题。如果您想加快arm32v7对ROS泊坞窗图像的支持,您可以提出您的疑虑并遵循错误报告:https :  //bugs.launchpad.net/cloud-images/+bug/1711735 3

虽然有些i386二进制文件是由ROS buildfarm提供的,但我现在刻意地省略它:

  1. i386 Docker引擎的二进制文件不是由Docker官方发货或支持的
  2. i386ROS包的当前流量低于手臂的流量
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 搬运工库/官方镜像/ BLOB /主/库/ ROS
  • 笔记:
  • 创建并使用多架构泊坞窗图像 - Linux on Power
  • PS
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档