实践笔记-03 docker buildx 使用

news2024/11/17 8:46:41

docker buildx 使用

  • 1.启用docker buildx
  • 2.启用 binfmt_misc
  • 3.从默认的构建器切换到多平台构建器
    • 3.1创建buildkitd.toml文件(私有仓库是http没有证书的情况下,需要配置)
    • 3.2创建构建器并使用新创建的构建器
  • 4.构建多架构镜像并推送至harbor仓库
  • 5.遇到的问题
    • 5.1内核版本低于4报错
      • 5.1.1报错信息参考
      • 5.1.2 centos7内核升级
    • 5.2 私有仓为http构建镜像报错

版本要求:docker版本不低于19.03,才能使用docker buildx

1.启用docker buildx

#查看docker buildx是否已开启
docker buildx version
# 没有开启,则执行一下命令
export DOCKER_CLI_EXPERIMENTAL=enabled
# 查看docker buildx是否正常运行
docker buildx ls

在这里插入图片描述

2.启用 binfmt_misc

docker桌面版(windows系统和macos系统默认是启用binfmt_misc的)。
Linux版本默认不支持构建arm架构镜像,因此需要自行安装启动:

# 内核低于4.X的版本建议先升级下内核,不然会出错。
#(最后面会贴上我安装时遇到的问题以及centos版本如何升级)

# 安装模拟器(用于多平台镜像构建)
docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d

# 验证是否开启binfmt_misc
ls -al /proc/sys/fs/binfmt_misc/

# 验证是否启用处理器
cat /proc/sys/fs/binfmt_misc/qemu-arm

在这里插入图片描述

3.从默认的构建器切换到多平台构建器

Docker默认会使用不支持多 CPU 架构的构建器,因此需要手动切换。

3.1创建buildkitd.toml文件(私有仓库是http没有证书的情况下,需要配置)

buildkitd.toml

debug = true
# insecure-entitlements allows insecure entitlements, disabled by default.
insecure-entitlements = [ "network.host", "security.insecure" ]

# optionally mirror configuration can be done by defining it as a registry.
# 这里配置私有库地址,可以配置多个。
#可以多个配置
[registry."XX.XX.XX.XX"]
  http = true
  insecure = true
#可以多个配置
[registry."XX.XX.XX.XX"]
http = true
insecure = true

3.2创建构建器并使用新创建的构建器

# 国内镜像(有ssl证书(https)的私有库时,直接用这个命令就可以了)
#docker buildx create --use --name=mybuilder-cn --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master 

# 如果私有仓库是http没有证书的情况下需要指定 --driver-opt network=host 和 --config /etc/buildkit/buildkitd.toml 两个参数,
# 需要先创buildkitd.toml配置文件
# 另外需要在/etc/docker/daemon.json中添加"insecure-registries": ["image.xxxxxx.com"]
docker buildx create --use --name=mybuilder-cn --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master --driver-opt network=host --config /home/buildkit/buildkitd.toml

# 使用新创建mybuilder-cn实例
docker buildx use mybuilder-cn
# 删除构建器
# docker buildx rm mybuilder-cn

4.构建多架构镜像并推送至harbor仓库

docker buildx build --platform linux/arm64,linux/amd64 -t 192.168.18.150/chenlf/server-center:1.0.0 . --push

在这里插入图片描述

5.遇到的问题

5.1内核版本低于4报错

5.1.1报错信息参考

在这里插入图片描述

5.1.2 centos7内核升级

linux内核版本升级(centos7)

5.2 私有仓为http构建镜像报错

以下两种错误均是没有ssl证书导致的。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1573907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

清风DJ,DJ舞曲听不停

hi,大家好我是技术苟,每周准时上线为你带来实用黑科技!由于公众号改版,现在的公众号消息已经不再按照时间顺序排送了。因此小伙伴们就很容易错过精彩内容。喜欢黑科技的小伙伴,可以将黑科技百科公众号设为标星&#xf…

如何选择适合智能型程控直流电子负载

在选择适合智能型程控直流电子负载时,需要考虑以下几个方面: 根据实际需求选择合适的负载容量,负载容量是指电子负载能够承受的最大电流和电压。一般来说,负载容量越大,价格越高。因此,在满足实际需求的前提…

Qt实现Kermit协议(四)

3 实现 3.3 KermitRecvFile 该模块实现了Kermit接收文件功能。 序列图如下: 3.3.1 KermitRecvFile定义 class QSerialPort; class KermitRecvFile : public QObject, public Kermit {Q_OBJECT public:explicit KermitRecvFile(QSerialPort *serial, QObject *…

【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图

SCI,CCF,EI及核心期刊绘图宝典,爆款持续更新,助力科研! 本期分享: 【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图,文末附完整代码 小提琴图是一种常用的数据可视化工具…

YUM仓库和编译安装

目录 一.YUM仓库搭建 1.简介: 2.搭建思路: 3.实验:单机yum的创建 二.编译安装 1.简介 2.安装过程 3.实验:编译安装nginx 一.YUM仓库搭建 1.简介: yum是一个基于RPM包(是Red-Hat Package Manager红…

深度学习500问——Chapter06: 循环神经网络(RNN)(3)

文章目录 6.11 LSTM 6.11.1 LSTM的产生原因 6.11.2 图解标准RNN和LSTM的区别 6.11.3 LSTM核心思想图解 6.11.4 LSTM流行的变体 6.12 LSTMs与GRUs的区别 6.13 RNNs在NLP中的典型应用 6.11 LSTM 6.11.1 LSTM的产生原因 RNN在处理长期依赖(时间序列上距离较远的…

DC电源模块在电子设备中的应用场景

BOSHIDA DC电源模块在电子设备中的应用场景 DC电源模块在电子设备中广泛应用于以下场景: 1. 电子产品:如手机、平板电脑、笔记本电脑等便携式设备,这些设备通常需要稳定的直流电源来供电。 2. 工业设备:包括自动化设备、工业机器…

【绘图案例-绘制图片 Objective-C语言】

一、绘制图片 1.接下来,我们来说这个绘制图片啊,把之前的copy代码复制粘贴一份儿,名字改成“05-绘制图片”, 1)首先:绘制图片,你要有图片,思路都是一样的,你绘制啥,首先要有啥, 素材里边,我们来说一下啊,这个里边儿,主要来说一下,小图、和、大图、的区别, 然后…

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(四)

本篇内容对应 “2.5 开发登录、退出功能” 小节 “4.7 优化登陆模块” 小节 2.6 显示登录信息 2.7 账号设置 2.8 检查登录状态 登录功能的流程是什么? UUID为什么不会重复? 因为UUID是基于mac物理地址、时间戳、随机数等信息生成。因此UUID居于极高的唯…

太阳能光伏电子实验酸洗用PFA方槽耐受强酸碱耐高温

PFA清洗槽是四氟清洗桶后的升级款,主要用于半导体光伏光电等行业,一体成型,无需担心漏液,表面光滑无毛刺。 别名PFA浸泡桶、PFA酸缸、PFA方槽等,可定制尺寸,可配套盖子,盖子有PFA/PTFE两种材质…

智过网:一建继续教育,操作指南与周期解析

随着社会的快速发展和技术的不断更新,建筑行业对从业人员的专业素质要求也在逐步提高。为了确保一级建造师的专业技能能够与时俱进,满足行业发展的需求,继续教育成为了必不可少的环节。本文将详细解析一建继续教育的操作流程及其周期安排&…

Hugging Face入门(一)

简介 本文主要内容: Hugging Face介绍环境搭建敲两个例子 Hugging Face介绍 Hugging Face 是一家法美合资公司,总部位于纽约市,成立于2016年。它由法国企业家Clment Delangue、Julien Chaumond和Thomas Wolf在纽约市创立,最初是…

让智能体像孩子一样观察别人学习动作,跨视角技能学习数据集EgoExoLearn来了

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 在探索人工智能边界时,我们时常惊叹于人类孩童的学习能力 —— 可以轻易地将他人…

基于SpringBoot的高校自习室预约系统

基于SpringBoot的高校自习室预约系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统功能分析 本次的功能设计主要围绕着学生和管理员两个角色,对于学生的用…

AI预测福彩3D第29弹【2024年4月7日预测--第7套算法重新开始计算第2次测试】

今天咱们继续进行进行第7套算法的测试,今天是第2次测试,昨天已经成功命中,其中7码大方案全部命中,四码小方案也命中。再接再厉,继续验证,废话不多说,直接上图上结果~ 2024年4月7日3D的七码预测结…

集合容器面试题

Java 容器都有哪些? Java 容器分为 Collection 和 Map 两大类 Collection 和 Collections 有什么区别? Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如 List、…

电商卖家如何从1688批量采集商品信息并铺货到自己店铺?

目前,各大电商平台严查无货源,不管是已经开店还是准备开店的卖家,想要店铺长久发展,都需要从1688找授权分销的厂家拿货源铺货。 然而很多新手卖家在1688找货源时,不知道如何找到物美价廉的源头厂货,选好货…

SpringBoot实现RabbitMQ的通配符交换机(SpringAMQP 实现Topic交换机)

文章目录 pomyml生产者消费者 Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符! Routingkey 一般都是有一个或多个单词组成,多个单词…

关于Linux下的进程创建与终止(进程篇 - 涉及写时拷贝,fork函数)

目录 创建进程 写时拷贝 fork函数 进程终止 进程终止时,操作系统都做了什么? 进程终止的常见方式有哪些? 如何使用代码终止掉一个进程? 创建进程 写时拷贝 在了解下面的内容之前,我们需要先聊一聊写时拷贝这一…

MySQL-基本SQL语句编写:运算符练习

运算符练习 1.选择工资不在5000到12000的员工的姓名和工资 SELECT last_name,salary FROM employees #where salary not between 5000 and 12000; WHERE salary < 5000 OR salary > 12000;2.选择在20或50号部门工作的员工姓名和部门号 SELECT last_name,department_id…