【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
相关推荐
jiayong236 小时前
DevOps体系详解02-技术架构与工具链
运维·架构·devops
计算机小手8 小时前
一个带Web UI管理的轻量级高性能OpenAI模型代理网关,支持Docker快速部署
经验分享·docker·语言模型·开源软件
坚持学习前端日记8 小时前
常见docker指令
docker·容器·eureka
小芳矶9 小时前
Dify本地docker部署踩坑记录
python·docker·容器
70asunflower9 小时前
阿里云无影云电脑 Docker 使用完全指南
阿里云·docker·云计算
SmartBrain9 小时前
Qwen3-VL 模型架构及原理详解
人工智能·语言模型·架构·aigc
OpenCSG11 小时前
对比分析:CSGHub vs. Hugging Face:模型管理平台选型对
人工智能·架构·开源
久绊A11 小时前
春节前云平台运维深度巡检-实操经验
运维·安全·容器·kubernetes·云平台
feasibility.11 小时前
在OpenCode使用skills搭建基于LLM的dify工作流
人工智能·低代码·docker·ollama·skills·opencode·智能体/工作流
!chen12 小时前
银河麒麟v11 kubeadm部署k8s v1.35.0高可用集群
云原生·容器·kubernetes