在 X86_64(amd64) 平台上的docker支持打包跨平台的镜像(如arm64)

在信创,ARM开始崛起的现在,Docker 也从一开始的只支持 x86_64 架构变为支持各种架构了,虽然 Docker 的目的是保证只要 Docker 安装好,在任意机器上运行都能达到一样的效果,但是这个的前提是Docker镜像的架构和当前服务器的架构一致,以前都是 x84_64架构自然可以,但现在也有别的架构,因此 一个镜像如果只有 x86_64 架构的版本,那么是无法在
Arm 架构的服务器上运行的。

和运行同理,打包也是如此,x86_64 的机器只能打包 x86_64 的镜像。

但是新版本的 docker (从 server 版本 大于 19.10 开始) 有了一个插件 buildx , 这个插件支持从一个平台构建多个平台的镜像。

下面是常见的几种方式

Docker Desktop

此软件是用于开发,测试使用的,很方便,因为新版本默认集成了 buildx ,也集成了多平台镜像模拟运行。、

我安装的版本

docker version

输出结果

Client:
 Cloud integration: v1.0.35+desktop.13
 Version:           26.1.1
 API version:       1.45
 Go version:        go1.21.9
 Git commit:        4cf5afa
 Built:             Tue Apr 30 11:46:57 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Desktop
 Engine:
  Version:          26.1.1
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.9
  Git commit:       ac2de55
  Built:            Tue Apr 30 11:48:28 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.31
  GitCommit:        e377cd56a71523140ca6ae87e30244719194a521
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

buildx 情况

docker buildx ls

输出

NAME/NODE       DRIVER/ENDPOINT   STATUS    BUILDKIT   PLATFORMS
default*        docker
 \_ default      \_ default       running   v0.13.2    linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/mips64le, linux/mips64, linux/loong64, linux/ppc64

可以看到,build 支持打包多个架构的镜像,如打包 linux/a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值