本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

alekitto/qemu-user-static 是一个基于 QEMU [1] 和 binfmt_misc [2] 技术的 Docker 镜像,用于实现在单一主机上执行不同架构的容器。通过注册 binfmt_misc 条目并提供 QEMU 静态二进制文件,该镜像允许主机系统直接运行非原生架构(如 arm64、ppc64le、s390x 等)的容器镜像,无需手动配置跨架构执行环境。
/usr/bin/qemu-$arch-static 静态二进制文件(如 qemu-aarch64-static、qemu-ppc64le-static 等)。以下示例展示在 x86_64 主机上配置并运行 arm64 架构容器的流程:
# 查看主机架构 $ uname -m x86_64 # 直接运行 arm64 容器,因架构不兼容失败 $ docker run --rm -t arm64v8/ubuntu uname -m standard_init_linux.go:211: exec user process caused "exec format error"
# 以特权模式运行镜像,重置并注册 binfmt_misc 条目(--reset 清除旧条目,-p yes 启用持久化) $ docker run --rm --privileged alekitto/qemu-user-static --reset -p yes
# 成功运行 arm64 容器,输出架构为 aarch64 $ docker run --rm -t arm64v8/ubuntu uname -m aarch64
# arm32v6 架构 $ docker run --rm -t arm32v6/alpine uname -m armv7l # ppc64le 架构 $ docker run --rm -t ppc64le/debian uname -m ppc64le # s390x 架构 $ docker run --rm -t s390x/ubuntu uname -m s390x
# 配置跨架构支持 $ sudo podman run --rm --privileged alekitto/qemu-user-static --reset -p yes # 运行 arm64 容器 $ podman run --rm -t arm64v8/fedora uname -m aarch64
# 配置跨架构支持 $ sudo singularity run docker://alekitto/qemu-user-static --reset -p yes # 运行 arm64 容器 $ singularity run --cleanenv docker://arm64v8/fedora uname -m aarch64
alekitto/qemu-user-static 提供两种镜像标签,适用于不同场景:
| 镜像标签 | 描述 |
|---|---|
alekitto/qemu-user-static | 完整版:包含 binfmt_misc 注册脚本和所有架构的 qemu-$arch-static 静态二进制文件。 |
alekitto/qemu-user-static:register | 轻量版:仅包含 binfmt_misc 注册脚本,需手动提供 qemu-$arch-static 二进制文件(如通过卷挂载)。 |
# 完整版镜像(自动提供 QEMU 二进制) docker run --rm --privileged alekitto/qemu-user-static [选项] # 轻量版镜像(需手动提供 QEMU 二进制) docker run --rm --privileged alekitto/qemu-user-static:register [选项]
必需参数:--privileged(需特权模式修改主机 binfmt_misc 配置)。
镜像执行时的选项会传递给 QEMU 内置的 qemu-binfmt-conf.sh 脚本,主要选项如下:
| 选项 | 参数 | 描述 |
|---|---|---|
--reset | - | 重置现有 binfmt_misc 条目(删除所有 qemu-* 相关文件),避免冲突。 |
-p / --persistent | yes/no | 是否持久化解释器:yes 表示 QEMU 解释器常驻内存,加速后续容器启动;no 表示动态加载(默认)。 |
--qemu-path | PATH | 指定 QEMU 二进制文件路径(默认使用镜像内置路径 /usr/bin)。 |
--qemu-suffix | SUFFIX | 为 QEMU 解释器名称添加后缀(如 --qemu-suffix -static)。 |
--credential | yes/no | 是否根据目标二进制计算凭据和安全令牌(默认 no)。 |
--help | - | 显示 qemu-binfmt-conf.sh 帮助信息。 |
指定非默认路径的 QEMU 二进制文件:
docker run --rm --privileged alekitto/qemu-user-static --reset --qemu-path /custom/qemu -p yes
若主机已安装 QEMU 静态二进制(如 /usr/bin/qemu-aarch64-static),可通过轻量版镜像注册并挂载使用:
# 注册 binfmt_misc 条目(轻量版镜像) docker run --rm --privileged alekitto/qemu-user-static:register --reset -p yes # 运行 arm64 容器时挂载本地 QEMU 二进制 docker run --rm -t -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu uname -m aarch64
通过 --systemd 选项生成 systemd-binfmt 服务配置文件,避免每次重启后重新配置:
# 生成所有架构的 systemd 配置文件到 /tmp/binfmt docker run --rm --privileged -v /tmp/binfmt:/export alekitto/qemu-user-static --systemd ALL --exportdir /export
alekitto/qemu-user-static 镜像本身支持以下架构,可在对应的主机架构上部署:
linux/amd64(x86_64)linux/arm64(aarch64)linux/arm/v7(arm32v7)linux/ppc64le(PowerPC 64 小端)linux/s390x(IBM Z 架构)--privileged 模式运行,否则无法修改主机的 /proc/sys/fs/binfmt_misc 配置。-p yes 会占用一定内存,但显著提升跨架构容器启动速度,建议生产环境启用。--reset,避免旧配置导致的冲突(如“File exists”错误)。[1] QEMU 官方文档: []
[2] binfmt_misc 内核文档: []
[3] Docker 官方文档: []
[4] Podman 官方文档: []
[5] Singularity 官方文档: [***]
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429