创建 Docker Buildx 多架构构建节点

前置条件

1 台 linux/amd64 的机器 A,1 台 linux/arm64 的机器 B。A 可以通过密钥对直接 SSH 连接 B。

实施

在 A 执行命令以创建名为 multiarch 的构建实例,并将本机加入该实例:

docker buildx create --name multiarch --driver docker-container --config /etc/buildkitd.toml --node amd64 --platform=linux/amd64

在 A 执行命令以将 B 加入该构建实例:

docker buildx create --append --name multiarch --driver docker-container --config /etc/buildkitd.toml --node aarch64 --platform=linux/arm64 ssh://<user>@<ip>:<port>

启动该构建实例:

docker buildx inspect --bootstrap --builder multiarch

上述命令会在两个机器上都启动一个容器,并且输出构建节点的信息。

可以随时通过下面的命令来查看本机上的构建实例:

docker buildx ls

如果上面创建的 multiarch 构建实例不是默认被使用的,可以通过该命令进行修改:

docker buildx use --default --builder multiarch

buildkitd 配置文件

上述命令中提及的 /etc/buildkitd.toml 可用于指定 Registry Mirrors,例如:

debug = true
[registry."docker.io"]
  mirrors = ["mirror.gcr.io"]

其它具体配置项请参阅官方文档,见引用。

测试

可以任意编写一个 Dockerfile,然后执行命令进行构建测试:

docker buildx build -t <image-tag> --platform=linux/arm64 --load .

引用

How to Rapidly Build Multi-Architecture Images with Buildx | Docker

Configure BuildKit

docker buildx

《创建 Docker Buildx 多架构构建节点》上有1条评论

  1. 您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan
    作者申请此计划后将作者的文章进行搬迁同步到社区的专栏下,你只需要简单填写一下表单申请即可,我们会给作者提供包括流量、云服务器等,另外还有些周边礼物。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注