惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
G
Google Developers Blog
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
J
Java Code Geeks
P
Proofpoint News Feed
V
Visual Studio Blog
爱范儿
爱范儿
The Cloudflare Blog
博客园 - 叶小钗
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
H
Help Net Security
B
Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
量子位
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

运维开发绿皮书

OBS虚拟摄像头重命名 Ubuntu备份为LiveOS 使用Powershell卸载windows默认程序 Cisco路由器OSPF配置 汽车的分类和特点 Windows11跳过TPM2.0 HTTPS 双向认证与 USB 加密锁配置实战 SSL 证书工具 字数统计 BMI 计算 颜色转换 Hash 生成器 JSON 格式化 JWT 解码 房贷计算 时间戳转换 URL 编码 UUID 生成 牛马时钟 二维码批量生成器 CKS Simulator Kubernetes 1.25 FRP TOTP验证码生成器 direct-ssh-passthrough-nat 脚本使用说明 Python软件授权 Linux命令行百度网盘 为 Containerd 配置 Harbor 无证书镜像站 Docker一键部署Meta和MetacubexD面板 必应搜索屏蔽垃圾网站 VMware的ubuntu完整安装vm-tools支持粘贴板
在x86-64上构建和运行多种架构的Docker容器
Paper-Dragon · 2025-04-17 · via 运维开发绿皮书

在x86-64上构建和运行多种架构的Docker容器

支持Docker Desktop 和 Linux Docker CE

配置多架构构建环境

安装CPU指令集模拟平台

相关信息

名称功能描述作用关联场景或示例
qemu-user-static跨架构指令集仿真器在x86架构主机上直接运行/编译其他CPU架构(如ARM、PPC、MIPS等)的二进制文件和容器镜像- 在x86宿主机编译、运行ARM架构的Docker镜像
- 容器多架构(multi-arch)支持
binfmt-support二进制格式解析器框架通过内核的binfmt_misc机制,将非本机架构的二进制文件执行请求转发给用户空间工具(如qemu-user-static)- 注册qemu-user-static为其他架构二进制文件的解释器
- 系统识别并执行非本机架构的可执行文件
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

安装新版CPU指令集模拟平台

相关信息

使用老版本的模拟器在arm64下出现sudo无法使用的问题,使用新版本可以使用。

https://github.com/tonistiigi/binfmt

docker run --privileged --rm tonistiigi/binfmt --install all

测试

docker run --rm --platform linux/arm64 alpine uname -a
docker run --rm --platform linux/arm/v7 alpine uname -a
docker run --rm --platform linux/ppc64le alpine uname -a
docker run --rm --platform linux/s390x alpine uname -a
docker run --rm --platform linux/riscv64 alpine uname -a

构建项目

docker build \
  --platform linux/arm64 \
  -t sherpa-restful-api:1.0.0 \
  --load .

多种架构同时构建

构建镜像并上传到镜像仓库,可以同时构建x86_64及ARM等多种版本的镜像

docker build -t ${TAG} --platform linux/amd64,linux/arm64 . --push

更新日志

  • 2ddd4-在x86-64上构建和运行多种架构的Docker容器, 合并文档 一键构建多种架构的镜像,新增binfmt新式指令模拟器