首页
Search
1
v2ray异常错误之二
3,310 阅读
2
linux时区设置
2,698 阅读
3
DB2常用操作
2,173 阅读
4
websphere修改jvm内存xmx和xms
1,929 阅读
5
nfs客户端文件属主为nobody的现象
1,552 阅读
技术
生活
运动
游戏
电影
登录
Search
标签搜索
docker
linux
troubleshooting
nginx
secure
truenas
mysql
windows
python
esxi
docker swarm
oracle
zabbix
tomcat
blog
dsm
群晖
rpa
freenas
db
yuc
累计撰写
291
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
运动
游戏
电影
页面
搜索到
1
篇与
的结果
2025-04-22
在X86机器上运行ARM镜像容器
需求背景 某项目提供的环境是基于容器的,无法使用 docker on docker 来运行服务了,所以需要从现有的arm版本容器镜像中提取出指定文件来直接运行 方案分析 短时间购买服务器不太现实,再就是原镜像比较大,大约有 16G,购买一台ARM云主机部署可行,但是上传文件的时间成本不低 所以第二个方案是尝试在现有的X86服务器上运行ARM版本的容器镜像,经过初步的检索,这个方案貌似可行 安装步骤 实现这个需求,主要是通过 qemu 模拟 ARM 来实现,参考文档 https://github.com/multiarch/qemu-user-static/ 安装依赖 # 前提已经安装了 docker,这里直接安装 qemu 相关的依赖包 yum install -y \ qemu-system-arm qemu qemu-user qemu-kvm qemu-kvm-tools libvirt virt-install \ libvirt-python libguestfs-tools-c 运行容器 docker run --rm --privileged multiarch/qemu-user-static --reset # 这个命令会设置宿主机相关配置,让后续ARM相关的程序能够解释执行 $ cat /proc/sys/fs/binfmt_misc/qemu-$arch enabled interpreter /usr/bin/qemu-$arch-static flags: F offset 0 magic 7f454c460201010000000000000000000200b700 mask ffffffffffffff00fffffffffffffffffeffffff # 要保证 interpreter 指定的文件路径存在,如果没有文件则去参考站点下载放入 拉取目标镜像 # 要注意指定 linux/arm64 否则会自动根据宿主机的架构来拉取 docker pull --platform linux/arm64 IMAGE 启动目标镜像 docker run --rm -it -d -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static IMAGE 确定启动状态 # docker容器在运行状态即是成功 docker ps -a 模拟错误 如果出现以下错误,说明并成功模拟成功目的架构: 在启动容器后接任何命令都提示 exec /bin/bash: no such file or directory 报错 exec format error 启动后查看状态是退出
2025年04月22日
6 阅读
0 评论
0 点赞