如何使用 Docker Buildx 顺序构建多架构镜像

Docker Buildx

引言

当我们需要创建多架构镜像时,通常会使用 Docker 命令 `docker buildx build`。这个命令可以并发构建镜像,但在某些情况下,这可能会造成资源占用过高、内存压力大以及网络连接失败等问题。本文将介绍如何在 Docker 中使用 Buildx 工具顺序构建多架构镜像,并提供一个解决方案来限制并发构建。

问题背景

在使用 `docker buildx build` 构建多架构镜像时,默认情况下它们是并发构建的。然而,在某些场景中,并发构建可能会导致问题,比如资源消耗过大和网络连接的失败。因此,有人提出是否有一种方法可以顺序构建这些镜像,以避免这些问题。

目前已知的解决方案是先分别为每个架构构建镜像,然后使用 `docker manifest create` 命令将它们组装在一起。但是,这种方式需要将每个镜像都上传到镜像仓库,这样会产生很多我们不需要的标签。

是否有一种方法可以在本地镜像上使用 `docker manifest create` 呢?又或者是否有更好的方式来顺序构建镜像呢?

解决方法

我们可以通过配置 Buildkit 中的 `max-parallelism` 选项来实现顺序构建功能。

首先,创建一个名为 `buildkitd.toml` 的配置文件,其中包含以下内容:

[worker.oci]
  max-parallelism = 4

以上配置文件中的 `max-parallelism` 选项指定了最大并发数为 4。根据你的需求,你可以调整这个值来限制并发构建的数量。

接下来,我们需要使用以下命令创建一个 Buildx 构建器,并将其与刚刚创建的配置文件关联起来:

docker buildx create --use --name container --driver docker-container --config buildkitd.toml

现在,我们已经成功创建了一个名为 "container" 的 Buildx 构建器,并将其与配置文件关联起来。

小结

我们介绍了如何使用 Docker Buildx 工具顺序构建多架构镜像。通过配置 Buildkit 中的 `max-parallelism` 选项,我们可以限制并发构建的数量,以避免资源占用过高、内存压力大和网络连接失败等问题。

通过创建一个包含 `max-parallelism` 选项的配置文件,并使用 `docker buildx create` 命令关联该配置文件,我们可以顺序构建多架构镜像,而无需上传每个镜像到镜像仓库。文章来源地址https://www.toymoban.com/diary/docker/661.html

到此这篇关于如何使用 Docker Buildx 顺序构建多架构镜像的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/docker/661.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
React项目Docker构建中文件找不到的解决方法
上一篇 2024年01月03日 01:17
如何高效优化Go中cipher.AEAD.Seal()的内存使用
下一篇 2024年01月03日 01:54

相关文章

  • 使用 docker buildx 构建跨平台镜像 (QEMU/buildx/build)

    https://docs.docker.com/build/building/multi-platform 构建跨平台镜像是 Docker 生态系统中的一个重要话题, 因为跨平台镜像可以在多种平台上运行, 极具灵活性。为了实现这个目标, Docker 社区提供了多种方式来构建跨平台镜像, 其中之一是使用 docker manifest, 我在《使用 docker manifest 构建跨平

    2024年02月03日
    浏览(24)
  • docker使用buildx构建多平台(x86,arm64)构架镜像

    docker目前使用版本为Server Version: 20.10.7,添加配置支持buildx docker版本较低时,请升级docker版本 有部分docker未带有,比如arm版本,则需要单独下载文件: 重启docker 系统环境要求 如果版本较低,需要升级内核 安装binfmt,支持的平台 安装编译时需要支持的平台,这里选择所有 bin

    2024年02月02日
    浏览(35)
  • Gitlab 使用 docker buildx 多重构建镜像上传私有 Harbor与 Dockerhub

    三台虚拟机 192.168.10.2 harbor 仓库 192.168.10.3 gitlab-ce 192.168.10.4 gitlab-runner 192.168.10.5 开发平台 系统: CentOS Linux release 8.5.2111 CPU: 4c 内存:8G 磁盘:40G 2.1 安装 docker buidx buidx在 gitlab runner 节点安装 默认的 docker build 命令无法完成跨平台构建任务,我们需要为 docker 命令行安装 bu

    2024年02月17日
    浏览(21)
  • Docker镜像文件打包和启动简易教程-Buildx构建多平台镜像

    在目标文件夹下执行以下命令 生成Dockerfile文件后,在其中写入 将本地Python项目打包成docker镜像,并在docker中运行 - 灰信网(软件开发博客聚合) 创建docker, . 必不可少 保存打包的镜像文件 命令行启动镜像文件 compase启动镜像文件 首先写入一个 docker_name.yaml 文件 docker compos

    2024年02月10日
    浏览(16)
  • Docker 项目如何使用 Dockerfile 构建镜像?

    1.1、Docker 简介 :讲述 Docker 的起源、它是如何革新现代软件开发的,以及它为开发者和运维团队带来的好处。重点强调 Docker 的轻量级特性和它在提高应用部署、扩展和隔离方面的优势。 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术,架构师成长之路,等

    2024年01月16日
    浏览(30)
  • 【无标题】如何使用Docker构建多平台镜像?

    如何构建多平台镜像? 工作原理 准备构建环境 开启Linux内核对多处理器架构的支持 创建使用\\\"docker-container\\\"驱动的Buildx实例 调整Dockerfile 调整构建命令 在不同镜像仓库之间传输镜像 如何构建多平台镜像? 如果你还不了解什么是多平台构建,请先阅读一下Docker构建多平台镜像

    2024年02月11日
    浏览(19)
  • Docker 镜像 (Harbor/BuildKit/buildx)

    golang 1.2.1. 基于 docker 容器 Commit 命令打包 第一步: 拉项目镜像 第二步: 基于镜像生成 docker(红色背景是项目的端口映射, 数据卷挂载, 定制化自启动和 root 登录权限), 这里按照自己的项目需求来: 第三步: 进入 docker, 添加或修改 docker(这里看需求修改: 我个人添加表 sql, 备份文件

    2024年02月04日
    浏览(18)
  • 如何使用docker-compose.yml构建镜像?

    使用 docker-compose.yml 文件来构建镜像,你需要在该文件中对你的服务进行定义,然后使用 docker-compose build 命令。 假设你有一个 docker-compose.yml 文件,它定义了一个名为 “web” 的服务,并指定了构建该服务所需的 Dockerfile 的路径,如下所示: 在这个例子中, build: . 指出 Dock

    2024年02月12日
    浏览(37)
  • 从零开始:如何使用Docker构建微服务架构

    使用 Docker 构建微服务架构是一种流行的方法,因为 Docker 提供了轻量级的容器化技术,使得每个微服务可以在隔离的环境中独立运行。从零开始构建这样的架构涉及到多个步骤,包括理解微服务架构的基本概念、安装 Docker、创建 Docker 容器和镜像、配置网络,以及部署和管理

    2024年04月14日
    浏览(20)
  • x86架构上构建arm64架构的docker镜像

    项目需要提供arm64架构上的centos7对应docker镜像,然后本地宿主机只有x86架构机器,因此需要在x86机器上构建centos arm64架构的docker镜像 宿主机操作系统:centos7.7 amd64架构 docker版本:19.03.15 ARM,AMD,X86,AArch64的概念可以参考: https://blog.csdn.net/Bubbler_726/article/details/88397357 下载 qemu-

    2024年02月11日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包