【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
相关推荐
吃饱了得干活7 小时前
限界上下文之后:微服务怎么拆、上下文怎么聊?
java·后端·架构
禅口魔心7 小时前
RK3576开发——Docker部署
docker·嵌入式linux
岁月如歌77867 小时前
一次讲透 Redis 缓存击穿、穿透、雪崩,从原理到实战解决方案
java·后端·架构
Python私教8 小时前
四个入口,一条流水线:如意智影的多入口架构取舍
人工智能·python·架构
腾渊信息科技公司8 小时前
腾渊科技重磅出品——多Agent集群实战:从通信层到调度中枢的完整架构方案
科技·架构·腾渊科技·腾渊信息科技
随便做点啥8 小时前
32卡×4090 24GB,Qwen3.8-27B-FP8 集群部署报告
服务器·经验分享·docker·vllm
To_OC16 小时前
跑了3个Docker容器后,我终于搞懂镜像和容器到底啥关系
后端·docker·容器
画中有画17 小时前
MLOps 架构在大模型应用系统中的设计与实践
架构
Rain的Java大神之路18 小时前
介绍一下分布式事务
java·分布式·后端·spring·spring cloud·架构·springcloud
厚国兄18 小时前
大模型AI Agent记忆系统——Graphiti_源码架构与实现教程
架构·agent