在x86-64上构建和运行多种架构的Docker容器
2025年4月17日...大约 1 分钟
在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
更新日志
2025/4/17 02:12
查看所有更新日志
719c5
-于