【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
相关推荐
打工的小王8 小时前
docker(三)具体项目的部署
运维·docker·容器
有风听风有雨看雨9 小时前
【Critical】docker unauthorized 2375
docker·容器·eureka
beginner.zs11 小时前
注意力革命:Transformer架构深度解析与全景应用
深度学习·架构·transformer
Trank-Lw12 小时前
Docker Devcontainer 管理命令
运维·docker·容器
科技观察12 小时前
告别镜像拉取困境:毫秒镜像以“正规军”姿态重塑国内Docker加速生态
运维·docker·容器
热爱生活的五柒13 小时前
docker里面的文件没有写入权限,也无法使用sudo。docker镜像里某个文件夹没有创建文件夹权限。如何解决?
运维·docker·容器
舰长11513 小时前
文件存储NAS使用架构
架构
愈努力俞幸运15 小时前
windows 安装 docker
windows·docker·容器
小尘要自信15 小时前
高级网络爬虫实战:动态渲染、反爬对抗与分布式架构
分布式·爬虫·架构
郑州光合科技余经理15 小时前
技术架构:海外版外卖平台搭建全攻略
java·大数据·人工智能·后端·小程序·架构·php