docker 运行异构镜像

概述

关于docker镜像在不同的cpu架构下运行报错的解决办法,作者踩坑验证,在此分享经验

某次工作遇到需要银行内部部署docker镜像,由于行内已经开始走信创的路线,使用鲲鹏系统,arm架构,记过就遇到了standard_init_linux.go:219: exec user process caused: exec format error,没办法,只能自己研究一下。

关于 docker 版本

  • docker 运行其他平台容器,需要使用 --platform 参数来指定平台
  • docker 19.03.9 及以上的版本才支持 --platform 参数
  • 默认没有开启 --platform 参数,需要手动开启,直接执行,会有下面的报错

查看是否开启 experimental 功能

--platform 参数需要 experimental 为 true,通过下面的命令可以验证是否开启

修改 daemon.json 文件,开启 experimental 功能

修改完成后,重启 docker 来验证

systemctl restart

docker docker info | grep -i 'experimental'

binfmt_misc 、QEMU依赖安装

binfmt_misc安装

qemu-user-static安装

安装结果检查

运行arm64v8/centos镜像

docker run -it --rm --platform arm64 -v /root/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/centos:latest /bin/bash

跨架构构建

思路是在构建过程中,如果有RUN指令,在指令前将qemu文件加进去。

以buildah为例,跟docker buildx应该没有差异。

可能出现的问题:

  1. 内核版本过低报错

解决办法:

  1. 方法一:升级内核
  2. 方法二:手动挡实现-p yes功能

参考:

https://www.cnblogs.com/xiaojiluben/p/16745276.html

x86 平台利用 qemu-user-static 实现 arm64 平台 docker 镜像的运行和构建-CSDN博客

https://github.com/multiarch/qemu-user-static/tree/master

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实时智能应答3D数字人搭建

语音驱动口型的算法 先看效果: 你很快就可以帮得上我了 FACEGOOD 决定将语音驱动口型的算法技术正式开源,这是 AI 虚拟数字人的核心算法,技术开源后将大程度降低 AI 数字人的开发门槛。FACEGOOD是一家国际领先的3D基础软件开发商,…

nginx配置支持ipv6访问,ipv4改造ipv6

一、前言 本地测试nginx部署的web系统支持ipv6地址访问。 二、本机ipv6地址 cmd ipconfig 找到IPv6地址 其中带有%号其实是临时分配得到地址 我们可以ping一下看看 另一种ping的方式 加上中括号 还有就是去掉%号 三、nginx增加配置 server块里增加 listen [::]:80; 四、测…

Java8 CompletableFuture异步编程-进阶篇

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前言 我们在前面文章讲解了CompletableFuture这个异步编程类的基本用法,…

云打印机多少钱一台?

随着新的一年的开始,很多同学们都开始打印资料,以应对新一年的各种考试。但是对于学生们来说,去打印店打印价格贵、打印不方便、没时间去打印等多种原因导致我们没办法及时打印资料,这个时候我们就需要用到云打印机。那么云打印机…

计算机找不到api-ms-win-core-path-l1-1-0的5种解决方法

在计算机使用过程中,我们可能会遇到各种问题,其中之一就是找不到某些系统文件。最近,许多用户反映他们在使用电脑时遇到了“找不到api-ms-win-core-path-l1-1-0文件”的问题。这个问题通常出现在Windows操作系统中,可能会影响到一…

Pinterest Ads广告投放,如何支付Pinterest Ads

Pinterest Ads是Pinterest平台上的广告服务,允许营销人员在Pinterest上创建和推广他们的品牌、产品或服务。Pinterest是一个以图片为主的社交媒体平台,用户可以在其中发现和分享灵感、创意和产品,因此Pinterest Ads提供了一个有吸引力的广告平…

猫头虎分享已解决Bug || 系统监控故障:MonitoringServiceDown, MetricsCollectionError

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

西门子PLC中的程序块及类别详解

在PLC的编程中,程序块是指一组逻辑控制代码,用于实现系统中特定的控制功能。程序块主要分为四类,包括函数块(FB)、函数(FC)、数据块(DB)和组织块(OB&#xff…

腾讯云轻量服务器流量用完了怎么办?停机吗?

腾讯云轻量服务器流量用完了怎么办?超额流量另外支付流量费,流量价格为0.8元/GB,会自动扣你的腾讯云余额,如果你的腾讯云账号余额不足,那么你的轻量应用服务器会面临停机,停机后外网无法访问,继…

CSS基础知识

font-family: "Trebuchet MS", Verdana, sans-serif; 字体栈,浏览器会一个一个试过去看下哪个可以用 font-size16px; font-size1em; font-size100%;//相对于16px 字体大小,需要进行单位换算16px1em font-weightnormal;//400font-weight属性…

WPS:如何在文字上打出横线

可通过拼音指南完成 1、打出需要加上横线的文字 2、选中文字,找到开始->拼音指南 3、 删掉原有拼音加入需要的短横线 4、结果

IDEA中安装jclasslib工具插件对字节码进行查看以及七种IDEA必备插件(已下载)

除了安装插件的方式,也可以采用单独下载软件的方式。 这里是安装插件的方式: 7个IntelliJ IDEA必备插件 七个插件包 idea引入外部插件的方式: 1.打开settings配置面板 2.选择plugins–》install pluginfrom disk 选择相应插件包》点击…