X86机器运行ARM64 Docker
multiarch/qemu-user-static 是使能 QEMU 执行不同的多架构容器,以下是 Docker 的示例。
XML/HTML代码
- # 查看硬件构架
- $ uname -m
- x86_64
- # 运行arm64v8版本的ubuntu系统,查看构架(错误提示)
- $ docker run --rm -t arm64v8/ubuntu uname -m
- standard_init_linux.go:211: exec user process caused "exec format error"
- # 运行qemu多构架支持
- $ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- # 查看arm64v8版本的ubuntu系统,查看构架(正常显示aarch64)
- $ docker run --rm -t arm64v8/ubuntu uname -m
- aarch64
它适用于许多架构和操作系统容器映像,以下为各个版本硬件构架演示。
XML/HTML代码
- $ docker run --rm -t arm32v6/alpine uname -m
- armv7l
- $ docker run --rm -t ppc64le/debian uname -m
- ppc64le
- $ docker run --rm -t s390x/ubuntu uname -m
- s390x
- $ docker run --rm -t arm64v8/fedora uname -m
- aarch64
- $ docker run --rm -t arm32v7/centos uname -m
- armv7l
- $ docker run --rm -t ppc64le/busybox uname -m
- ppc64le
- $ docker run --rm -t i386/ubuntu uname -m
- #Podman有效
- $ sudo podman run --rm --privileged multiarch/qemu-user-static --reset -p yes
- $ podman run --rm -t arm64v8/fedora uname -m
- aarch64
常见硬件构架镜像地址:
简单创建一个arm64v8的Debian、Ubuntu、Centos、Alpine
XML/HTML代码
- docker run --name multiarch --privileged --restart=always multiarch/qemu-user-static --reset -p yes
XML/HTML代码
- #Debian
- docker run -tid --name debian --privileged=true arm64v8/debian
- docker exec -it debian /bin/bash
- #Ubuntu
- docker run -tid --name ubuntu --privileged=true arm64v8/ubuntu
- docker exec -it ubuntu /bin/bash
- #Centos
- docker run -tid --name centos --privileged=true arm64v8/centos
- docker exec -it centos /bin/bash
- #Alpine
- docker run -tid --name alpine --privileged=true arm64v8/alpine
- docker exec -it alpine /bin/sh