Docker跨CPU使用

CPU架构

      amd64、x86、arm64、mips64el等等,amd64 CPU架构的电脑默认是不能使用其他架构的镜像,但可以通过qemu的技术来实现,Docker跨CPU使用。

举例说明

x86_64 CPU架构的电脑运行 ARM64 的docker镜像。

1、下载所需平台的解释器

https://github.com/multiarch/qemu-user-static/releases/

此处下载:qemu-aarch64-static,并将其放到 /usr/bin 目录下
注:aarch64即arm64,运行arm64的docker镜像,所以下载qemu-aarch64-static该解释器

2、注册平台的解释器

docker pull multiarch/qemu-user-static:register
docker run --rm --privileged multiarch/qemu-user-static:register

注:每次重启机器,需重新注册
注:注册成功可以查询到aarch64对应的解释器

cat /proc/sys/fs/binfmt_misc/qemu-aarch64

如果想撤销,执行如下执行

docker run --rm --privileged multiarch/qemu-user-static:register --reset

3、运行测试

docker run --rm -it -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/debian bash

4、后记

      因为是访问不同CPU的镜像,可能会出现qemu相关报错,但只要是标准指令或者是官方版本镜像,理论上不会报错,放心使用!再也不担心没有其他CPU架构的机器了。

5、Dockerfile中的应用

FROM XXX
COPY qemu-aarch64-static /usr/bin/qemu-aarch64-static

注:必须为第一条执行内容,即紧跟FROM命令;qemu-aarch64-static 文件为可执行文件

你可能感兴趣的:(docker)