Qemu 使用 docker 图像注册二进制文件
Qemu register binaries using docker image
我正在测试 multiarch/qemu-user-static
docker 图像,它应该生成二进制文件来为不同的 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
看起来生成的文件已经存在。
我的问题是我在 /usr/bin/
中找不到 qemu-arm-static
。
那么,它保存在哪里?
谢谢
此容器将更改主机 /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"
以上都会被注册,但实际上host里面已经有人注册了,所以你会得到file already exists.
由于脚本不会退出,所以可以绕过这些错误。
顺便说一句:如果你想的话,你可以使用docker run -it --rm --privileged --entrypoint /bin/sh multiarch/qemu-user-static:register
进入容器看看这些脚本。根据它的dockerfile,它会先调用/register
shell script.
我正在测试 multiarch/qemu-user-static
docker 图像,它应该生成二进制文件来为不同的 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
看起来生成的文件已经存在。
我的问题是我在 /usr/bin/
中找不到 qemu-arm-static
。
那么,它保存在哪里?
谢谢
此容器将更改主机 /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"
以上都会被注册,但实际上host里面已经有人注册了,所以你会得到file already exists.
由于脚本不会退出,所以可以绕过这些错误。
顺便说一句:如果你想的话,你可以使用docker run -it --rm --privileged --entrypoint /bin/sh multiarch/qemu-user-static:register
进入容器看看这些脚本。根据它的dockerfile,它会先调用/register
shell script.