记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

X86机器运行ARM64 Docker

X86机器运行ARM64 Docker
Github:https://github.com/multiarch/qemu-user-static
Dockerhub:https://hub.docker.com/r/multiarch/qemu-user-static
Github:https://github.com/docker-library/official-images
镜像地址:Debian Ubuntu Alpine Fedora Almalinux Rockylinux Centos Opensuse
其他镜像:https://hub.docker.com/u/arm64v8
multiarch/qemu-user-static 是使能 QEMU 执行不同的多架构容器,以下是 Docker 的示例。
XML/HTML代码
  1. # 查看硬件构架
  2. $ uname -m
  3. x86_64
  4. # 运行arm64v8版本的ubuntu系统,查看构架(错误提示)
  5. $ docker run --rm -t arm64v8/ubuntu uname -m
  6. standard_init_linux.go:211: exec user process caused "exec format error"
  7. # 运行qemu多构架支持
  8. $ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
  9. # 查看arm64v8版本的ubuntu系统,查看构架(正常显示aarch64)
  10. $ docker run --rm -t arm64v8/ubuntu uname -m
  11. aarch64
它适用于许多架构和操作系统容器映像,以下为各个版本硬件构架演示。
XML/HTML代码
  1. $ docker run --rm -t arm32v6/alpine uname -m
  2. armv7l
  3. $ docker run --rm -t ppc64le/debian uname -m
  4. ppc64le
  5. $ docker run --rm -t s390x/ubuntu uname -m
  6. s390x
  7. $ docker run --rm -t arm64v8/fedora uname -m
  8. aarch64
  9. $ docker run --rm -t arm32v7/centos uname -m
  10. armv7l
  11. $ docker run --rm -t ppc64le/busybox uname -m
  12. ppc64le
  13. $ docker run --rm -t i386/ubuntu uname -m
  14. #Podman有效
  15. $ sudo podman run --rm --privileged multiarch/qemu-user-static --reset -p yes  
  16. $ podman run --rm -t arm64v8/fedora uname -m  
  17. aarch64  
常见硬件构架镜像地址:
ARMv6 32-bit  ARMv7 32-bit  ARMv8 64-bit  Linux x86-64  Windows x86-64
ARMv5 32-bit  IBM POWER8  IBM z Systems  MIPS64 LE  RISC-V 64-bit  x86/i686 
简单创建一个arm64v8的Debian、Ubuntu、Centos、Alpine
XML/HTML代码
  1. docker run --name multiarch --privileged --restart=always multiarch/qemu-user-static --reset -p yes
XML/HTML代码
  1. #Debian
  2. docker run -tid --name debian --privileged=true arm64v8/debian
  3. docker exec -it debian  /bin/bash
  4. #Ubuntu
  5. docker run -tid --name ubuntu --privileged=true arm64v8/ubuntu
  6. docker exec -it ubuntu  /bin/bash
  7. #Centos
  8. docker run -tid --name centos --privileged=true arm64v8/centos
  9. docker exec -it centos  /bin/bash
  10. #Alpine
  11. docker run -tid --name alpine --privileged=true arm64v8/alpine
  12. docker exec -it alpine  /bin/sh
此项目可以让Docker支持不同的硬件平台,可以测试编译程序,非常方便,具体使用可以自行修改。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):