我正在测试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/
。
那么,它保存在哪里?
谢谢
答案 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脚本。