在x86_64机器上构建arm64镜像

本文介绍了如何在没有arm机器的情况下,利用qemu-user-static和Docker buildx在x86_64平台上构建arm64架构的Docker镜像。qemu-user-static通过binfmt_misc机制模拟arm环境,而buildx是Docker的实验性特性,用于支持多架构镜像的构建和推送。虽然buildx更便捷,但若环境受限,qemu-user-static也是一个可行的选择。
摘要由CSDN通过智能技术生成

有几种办法可以打包出arm64的镜像

  • 直接在arm机器上执行编译和打包

  • 通过qemu模拟arm环境

  • 利用docker提供的buildx(需要启用试验性特性)

我没有arm的机器~,所以我主要试了一下下面两种方式。

借助qemu-user-static镜像打包

文档:https://github.com/multiarch/ qemu-user-static

# 开启arm平台支持
$ docker run --rm --privileged multiarch/qemu-user-static:register --reset
# copy qemu-user-static 二进制到/usr/bin 目录
$ docker build --rm -t "test/integration/ubuntu" -<<EOF
FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu
FROM arm64v8/ubuntu
COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin
EOF

$ docker run --rm -t "test/integration/ubuntu" uname -m
aarch64

在运行qemu-user-static:register镜像的时候,就通过内核中的binfmt_misc机制注入了哪些可执行文件可以被识别。

注意:需要将qemu-aarch64-static文件 copy 到/usr/bin目录。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值