【docker】x86主机在docker中运行arm64镜像

一、背景

1、在x86搭建arm64 ros的开发环境。

2、宿主机:虚拟机x86_ubuntu18

3、设备:jetson agx xavier(jetpack4.6.1)

  1. jetson已安装各种软件环境

二、docker环境搭建

  1. 打包jeston文件系统

把U盘插到jetson,然后执行打包命令。

--exclude是排除不需要打包的文件

sudo tar -cvpf /U盘路径/jetson.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot --exclude=media/ .

2、x86加载docker文件

a、打包完成后,将U盘插到pc主机

b、将文件系统导入docker

cat jetson.tar | docker import - jetson:1.0

c、安装qemu

sudo apt-get install qemu binfmt-support qemu-user-static

d、模拟arm指令集

每次开机后,在x86运行arm容器的时候都需要执行

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

e、运行jetson镜像

docker run -it jetson:1.0 bash

然后就可以看到jetson的文件 ,可以尝试编译运行ros包,应该无异常。但是用这种方法ros2好像存在问题。

你可能感兴趣的:(xavier,基础知识,docker)