Sun's Blog

使用docker buildx打包发布多平台镜像

时间: 分类: 系统应用

查看docker版本是否开启实验特性

Client:
Version: 20.10.16
API version: 1.41
Go version: go1.17.10
Git commit: aa7e414fdcb23a66e8fabbef0a560ef1769eace5
Built: Sun May 15 15:07:52 2022
OS/Arch: linux/amd64
Context: default
Experimental: true

如果是flase,在 docker 配置文件/etc/docker/daemon.json中加入"experimental": true,如下:

{
  "registry-mirrors": [""],
  "experimental": true
}

重启docker 验证是否开启

安装 buildx 插件

创建插件目录

mkdir ~/.docker/cli-plugins

下载插件到上面的目录中,注意这一步需要选择自己对应平台的二进制包

wget -O ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.9.1/buildx-v0.9.1.darwin-amd64

授予执行权限

chmod +x ~/.docker/cli-plugins/docker-buildx

使用 dockerx 打包镜像

创建构建实例。通俗的讲,就是创建用于执行构建任务的节点

docker buildx create --use --name build-node-example --driver docker-container
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

打包命令

docker buildx build -t user/package:version --platform linux/amd64,linux/arm/v7 --push .

Powered by Typecho | Web ui: Layui