当前位置: 首页 > news >正文

os x arm-linux,在 OS X 下构建 ARM 64 镜像

Mac OS X 的 Docker 桌面版中加入了一个 buildx 的试验特性,启用之后,可以直接在 MAC 系统中构建 ARM64 和 ARM7 的镜像。启用方法很简单,打开 Docker 的配置窗口,进行如下配置:

90529c7170c28e124227d17fe8353b89.png

打开这个功能之后,Docker 会重新启动一次,命令行中的 Docker 就多出一个 buildx 命令,可以用于构建异构镜像了。

进行构建之前,首先进行初始化:

$ docker buildx create --name builderx

$ docker buildx use mybuilder

$ docker buildx inspect --bootstrap

...

Endpoint: unix:///var/run/docker.sock

Status: running

接下来我们随便写一个 Dockerfile:

FROM ubuntu:18.10

CMD ["tini", "--", "sleep", "1d"]

在镜像库或者 Docker hub 上创建一个新仓库,就可以尝试 Build->Push 的操作了:

$ docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t dustise/debug-container:v0.2 . --push

=> [internal] load .dockerignore 0.0s

=> => transferring context: 2B 0.0s

=> [internal] load build definition from Dockerfile 0.0s

=> => transferring dockerfile: 182B 0.0s

=> [linux/arm64 internal] load metadata for docker.io/library/ubuntu:18.10 3.5s

=> [linux/arm/v7 internal] load metadata for docker.io/library/ubuntu:18.10 4.0s

=> [linux/amd64 internal] load metadata for docker.io/library/ubuntu:18.10 3.5s

=> [linux/arm64 1/2] FROM docker.io/library/ubuntu:18.10@sha256:7d657275047118bb77b052c4c0ae43e8a289ca2879ebfa78a7 0.0s

...

=> => pushing layers 5.1s

=> => pushing manifest for docker.io/dustise/debug-container:v0.2

接下来可以打开你的 Harbor 或者 Docker Hub 查看一下,镜像库中是否已经加入了多平台的镜像内容:

7609b2d5249dc97226762b09ac603538.png

buildx 还有 save 语法,可以直接将构建结果输出为压缩包,但是目前还没有提供完整支持。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 晚上的校园歌手晚会
  • linux fs源代码分析,BlueFs源代码分析报告.doc
  • Get Information from Tracert Command
  • securecrt linux开发板,SecureCRT 登陆虚拟机中Ubuntu详解
  • 西直门交警
  • c语言文件分割与合并程序详解,如何实现将一个文件分割成多个小文件
  • 使用dbms_rowid包获得rowid的详细信息
  • 高斯消元法的应用
  • 小波 c语言实现,小波分析算法的公式与C语言实现
  • 输入一行数字把5都看成空格 C语言,算法设计习题整理112.doc
  • 值得尊敬的---抵抗之都费卢杰
  • 风潇潇兮
  • 单片机c语言基本类型修饰符,下列属于 C语言中类型修饰符的是()。
  • 不知如何走的立交桥(西直门交警一文背景)
  • 趣味c语言题目,C语言趣味程序设计题目百例.doc
  • Google 是如何开发 Web 框架的
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Android优雅地处理按钮重复点击
  • angular2开源库收集
  • echarts花样作死的坑
  • JavaScript DOM 10 - 滚动
  • js数组之filter
  • React的组件模式
  • 大快搜索数据爬虫技术实例安装教学篇
  • 使用Swoole加速Laravel(正式环境中)
  • 双管齐下,VMware的容器新战略
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 项目管理碎碎念系列之一:干系人管理
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​2020 年大前端技术趋势解读
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​虚拟化系列介绍(十)
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #include<初见C语言之指针(5)>
  • #NOIP 2014# day.2 T2 寻找道路
  • $.ajax()方法详解
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (arch)linux 转换文件编码格式
  • (web自动化测试+python)1
  • (多级缓存)多级缓存
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)Linux——Linux常用指令
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (七)Java对象在Hibernate持久化层的状态
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (三)elasticsearch 源码之启动流程分析
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径