amd64 -- buildx linux 镜像 Docker docker
当前跨 CPU 架构编译程序的不同方法:
方法一:直接在目标硬件上编译方法二:模拟目标硬件方法三:通过 binfmt_misc 模拟目标硬件的用户空间方法四:使用交叉编译器新方案: =>使用buildx构建多平台 Docker 镜像(无需修改dockerfile)
快速开始
1.查看buildx插件(要求docker大于19.03)
docker buildx version
github.com/docker/buildx v0.5.1-docker 11057da37336192bfc57d81e02359ba7ba848e4a
//如果提示docker: ‘buildx’ is not a docker command. 需要看下docker版本
2.Docker for Linux 不支持构建 arm 架构镜像,我们可以运行一个新的容器让其支持该特性
启用 binfmt_misc
//可以通过运行一个特权 Docker 容器来更方便的设置启用 binfmt_misc。这里输出太长,我就不展示了。
docker run --rm --privileged tonistiigi/binfmt:latest --install all
//运行结束后需要重启docker使其生效
sudo systemctl daemon-reload
sudo systemctl restart docker
//查看支持的处理器
ls -al /proc/sys/fs/binfmt_misc/
-rw-r–r-- 1 root root 0 Nov 6 08:10 qemu-aarch64
-rw-r–r-- 1 root root 0 Nov 6 08:10 qemu-arm
-rw-r–r-- 1 root root 0 Nov 6 08:10 qemu-mips64
-rw-r–r-- 1 root root 0 Nov 6 08:10 qemu-mips64el
-rw-r–r-- 1 root root 0 Nov 6 08:10 qemu-ppc64le
-rw-r–r-- 1 root root 0 Nov 6 08:10 qemu-riscv64
-rw-r–r--