Skip to content

Docker 多架构支持 (QEMU)#

使用 QEMU 和 binfmt_misc 在 Docker 中运行多架构容器。

目录#

安装 QEMU 支持#

# 安装所有架构的模拟器
docker run --privileged --rm tonistiigi/binfmt --install all

安装输出示例:

...
"supported": [
    "linux/amd64",
    "linux/amd64/v2",
    "linux/amd64/v3",
    "linux/arm64",
    "linux/riscv64",
    "linux/ppc64le",
    "linux/s390x",
    "linux/386",
    "linux/mips64le",
    "linux/mips64",
    "linux/loong64",
    "linux/arm/v7",
    "linux/arm/v6"
  ],
...

拉取多架构镜像#

# 拉取 ARM64 架构镜像
docker pull --platform linux/arm64 arm64v8/ubuntu:22.04

运行多架构容器#

# 运行 ARM64 容器
docker run -it --rm --platform linux/arm64 \
  -v /workspaces:/workspaces \
  arm64v8/ubuntu:22.04 bash

支持的架构#

运行 tonistiigi/binfmt 后支持的架构:

架构 平台标识
AMD64 linux/amd64
AMD64 v2 linux/amd64/v2
AMD64 v3 linux/amd64/v3
ARM64 linux/arm64
RISC-V 64 linux/riscv64
PowerPC 64LE linux/ppc64le
IBM S/390x linux/s390x
x86 linux/386
MIPS 64LE linux/mips64le
MIPS 64 linux/mips64
LoongArch 64 linux/loong64
ARM v7 linux/arm/v7
ARM v6 linux/arm/v6

注意事项#

  1. 性能:QEMU 模拟运行的性能低于原生架构
  2. 权限:需要 --privileged 权限注册 binfmt_misc
  3. 兼容性:部分软件可能不兼容模拟环境