如何构建x86_64和arm等多cpu指令集容器镜像

介绍

本文主要介绍docker如何构建支持多平台(x86_64,arm)的镜像以及依赖的基础环境。

系统依赖以及环境要求

  • 内核:4.8+
  • qemu、qemu-user
  • docker版本:19.03+

构建多架构镜像步骤

#1.安装cpu指令集模拟平台
apt install -y qemu-user-static binfmt-support
其中,qemu-user-static是一个可以在当前操作系统来运行其他架构的一个仿真器。binfmt-support是一个解析不同系统的二进制文件给内核执行,再将执行结果返回给用户空间的进程。
#2.安装docker后,启用docker cli experimental特性
echo -e '{\n "experimental": enabled"\n}' > ~/.docker/config.json
或者设置环境变量:export DOCKER_CLI_EXPERIMENTAL=enabled
#3. 配置多平台cpu指令集模拟器,让docker支持除当前处理器之外的其他cpu指令集:https://github.com/multiarch/qemu-user-static
docker run -rm --privileged multiarch/qemu-user-static --reset -p yes
#4.列出builder
docker buildx ls
注意:当前使用的是默认的 builder,不能使用,需要创建一个新的builder
#5.创建builder
docker buildx create --use --name mybuilder
#6.查看创建的builder
docker buildx inspect --bootstrap
#7.构建和自动推到镜像仓库
docker buildx build --platform linux/amd64,linux/arm64 -t repository:tag  --push .

你可能感兴趣的:(docker,kubernetes,docker,linux,运维)