You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

x86_64平台下使用QEMU构建ARM64 Docker容器遇问题求助

服务器及Docker环境信息
Linux xxx 3.10.0-1160.66.1.el7.x86_64 #1 xxx x86_64 x86_64 x86_64 GNU/Linux

Docker version 20.10.17

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.8.2-docker)
  scan: Docker Scan (Docker Inc., v0.17.0)

Server:
 Server Version: 20.10.17
 Kernel Version: 3.10.0-1160.66.1.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
问题描述

我需要在x86_64架构主机上,通过QEMU构建并运行arm64架构的Docker容器,按QEMU官方指引操作后出现执行格式错误。

已尝试的操作及错误信息
  • 直接运行arm64容器失败:
    $ uname -m
    x86_64
    
    $ docker run --rm -t arm64v8/ubuntu uname -m
    WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested
    exec /usr/bin/uname: exec format error
    
  • 尝试docker build指定平台失败:
    $ docker build --platform linux/arm64/v8 .
    unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /work/home/chenning/Dockerfile: no such file or directory
    
  • 尝试docker buildx构建多平台镜像失败:
    $ docker buildx build --push --platform linux/amd64,linux/arm64 -t <tag> .
    -bash: tag: No such file or directory
    
  • 运行multiarch/qemu-user-static初始化命令报错:
    $ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    sh: write error: Invalid argument
    Setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha
    Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm
    sh: write error: Invalid argument
    Setting /usr/bin/qemu-armeb-static as binfmt interpreter for armeb
    sh: write error: Invalid argument
    Setting /usr/bin/qemu-sparc-static as binfmt interpreter for sparc
    sh: write error: Invalid argument
    ...
    
  • 执行register命令成功,但存在后续问题:
    运行docker run --rm --privileged multiarch/qemu-user-static:register后,/proc/sys/fs/binfmt_misc目录下已生成qemu-aarch64等QEMU解释器条目,其信息如下:
    enabled
    interpreter /usr/bin/qemu-aarch64-static
    flags:
    offset 0
    magic 7f454c460201010000000000000000000200b700
    mask ffffffffffffff00fffffffffffffffffeffffff
    
    但当前遇到两个问题:
    1. 找不到/usr/bin/qemu-aarch64-static解释器文件
    2. 没有权限修改该条目的flags参数
求助需求

恳请提供解决方案,解决在x86_64主机上运行arm64 Docker容器的问题,以及当前找不到QEMU解释器、无法修改flags的问题。

内容的提问来源于stack exchange,提问作者kinder chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:15:39