【docker镜像如何在不同的架构上运行】

背景

公司要求在国产的系统和cpu的机器上部署java项目,一开始我以为docker是跨平台通用的,直到我遇到了

javascript 复制代码
standard_init_linux.go:220: exec user process caused "exec format error"

才知道原来不同架构的cpu下不能互通,我的环境是aarch64(arm 精简指令架构)的,而我的镜像是我在window虚拟机下制作的是amd64(amd64 x86-64 其实都是同一个架构属于amd架构)的

查看架构命令如下

javascript 复制代码
docker inspect  镜像id/镜像名称

经过6个小时的研究参考了文章

https://zhuanlan.zhihu.com/p/669307734最终搞定

首先要配置docker的加速地址不然都下载不到镜像

https://github.com/DaoCloud/public-image-mirror?tab=readme-ov-file

去看这个怎么配置镜像加速地址

配置镜像运行使用特殊功能

javascript 复制代码
vi /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.m.daocloud.io",
   "https://dockerhub.icu",
    "https://docker.chenby.cn",
    "https://docker.1panel.live",
    "https://docker.awsl9527.cn",
    "https://docker.anyhub.us.kg",
    "https://dhub.kubesre.xyz"],"experimental": true}

重启docker

javascript 复制代码
systemctl restart docker
docker info 

拉取镜像并运行镜像

javascript 复制代码
docker run --rm --privileged xfan1024/qemu-user-static:ubuntu-23.04-aarch64

上面运行玩就可以拉

检查容器在aarch64下是否能运行x86的容器

javascript 复制代码
docker run --rm -it nginx uname -m
x86_64
相关推荐
heimeiyingwang2 小时前
【架构实战】CQRS架构模式实战
架构
技术传感器2 小时前
Hermes为什么开始像基础设施:11万星、RCE修复与生态接入
人工智能·安全·架构·aigc
执于代码3 小时前
智能客服的agent 的架构和作用以及源码分析
架构
小义_3 小时前
【Kubernetes】(九)Service 2
云原生·容器·kubernetes
AI创界者4 小时前
【独家解析】Ernie-Image-AIO-Rapid一键部署本地运行整合包:深度融合架构如何重塑AI绘图效率?4K超分与硬件适配全指南
人工智能·架构
天籁晴空5 小时前
Docker Compose 部署完整指南 -- RuoYi-Vue
docker·ruoyi
@土豆5 小时前
Elasticsearch 9.0.1 集群部署(Docker Compose + k8s 部署方式)
大数据·elasticsearch·docker
Cyber4K5 小时前
【Kubernetes专项】温故而知新,重温技术原理(2)
云原生·容器·kubernetes
BullSmall5 小时前
Redis 双机部署 完整方案(两种架构,适配两台机器)
java·redis·架构
SamDeepThinking8 小时前
适合中小型企业的出口入口网关微服务
java·后端·架构