Qemu使用docker映像注册二进制文件

时间:2019-01-16 08:45:54

标签: docker qemu

我正在测试multiarch/qemu-user-static泊坞窗映像,该映像应生成二进制文件以构建用于不同CPU体系结构的映像。

我在Macbook上尝试了以下命令:

docker run --rm --privileged multiarch/qemu-user-static:register

,输出之一是:

Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm
sh: write error: File exists

看起来生成的文件已经存在。

我的问题是我在qemu-arm-static中找不到/usr/bin/

那么,它保存在哪里?

谢谢

1 个答案:

答案 0 :(得分:1)

此容器将更改主机/proc/sys/fs/binfmt_misc中的文件,因为该容器将共享主机的内核。

脚本在容器中的候选者是:

qemu_target_list="i386 i486 alpha arm armeb sparc32plus ppc ppc64 ppc64le m68k \
mips mipsel mipsn32 mipsn32el mips64 mips64el \
sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb microblaze 
microblazeel"

以上所有内容都将被注册,但是实际上,在主机中,已经有一个已注册,因此您将获得file already exists.

由于脚本未退出,因此您可以绕过这些错误。

顺便说一句:如果需要,您可以使用docker run -it --rm --privileged --entrypoint /bin/sh multiarch/qemu-user-static:register进入容器以查看这些脚本。根据其dockerfile,它将首先调用/register shell脚本。

相关问题