这里推荐两个链接:
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]:
笔记:
- 添加了新标签,通过附加后缀指定操作系统套件
- 例如
kinetic-ros-base-xenial
,kinetic-ros-base-jessie
- 例如
- 原始标签集没有变化,因为它们仍然指向同一个套件
- 例如
kinetic
<=>kinetic-ros-base
<=>kinetic-ros-base-xenial
- 另外对于
amd64
从osrf / ros自动回购托管的标记图像也是如此
- 例如
- 目前,多架构ROS映像托管在独立的docker中心组织下
- 例如
docker pull arm64v8/ros
ORdocker pull arm32v7/ros:indigo
- 您可以参考
<arch>/ros:<tag>
具体拉一个给定的架构 - 或尝试临时清单启用测试滚动回购:
docker pull trollin/ros
- 例如
- 即将到来,官方登记处将在内部谈判通过清单拉出的拱门
- 如果docker-engine主机是
arm64v8
,docker pull ros
应该拉一个arm64v8
图像
- 如果docker-engine主机是
- 有一些构建脚手架可以跟随ROS的多架构图像构建
这一切都是相当新的,所以如果你想开始学习更多,这里是一个相对较新的文章[3]:
当然,如果你想玩任何一个手臂图像,但没有覆盆子或其他手臂的平台放在一起,你可以很容易地通过qemu-user和binfmt支持模拟。通过将必要的binfmt支持内核模块和qemu-user静态二进制文件安装到主机,您可以在arm环境中运行命令,例如在amd64
工作站上。这可能需要您的debian binfmt支持包的即将到来的修补程序,具体取决于您的分发,因此应该遇到运行时问题,您可以按照这里的说明[4]。
例如:
$ 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]:
也不要忘了分享我们的官方回购[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提供的,但我现在刻意地省略它:
i386
Docker引擎的二进制文件不是由Docker官方发货或支持的i386
ROS包的当前流量低于手臂的流量
-----
-----