posts - 364,comments - 0,views - 19万

安装buildx 

1\ 目前安装较高版本docker 会自带buildx

2\ github 官网进行安装  https://github.com/docker/cli/blob/master/experimental/README.md

对于构建镜像的ARM版本,有如下两种方式:

  1. 在ARM机器上使用 docker build 进行构建;
  2. 在X86/AMD64 的机器上使用 docker buildx 进行交叉构建;

如需使用 buildx,需要开启docker的实验功能后,才可以使用,开启方式

复制代码
编辑 /etc/docker/daemon.json

添加:
{
"experimental": true
}
编辑 ~/.docker/config.json 添加:
"experimental" : "enabled"
重启Docker使生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
确认是否开启:
docker version -f’{{.Server.Experimental}}’
如果输出true,则表示开启成功
复制代码

使用buildx构建

使用 docker buildx ls 命令查看现有的构建器

docker buildx ls

创建并构建器:

复制代码
# 下面的创建命令任选一条符合情况的即可
# 1. 不指定任何参数创建
docker buildx create --use --name multiarch-builder
# 2. 如创建后使用docker buildx ls 发现构建起没有arm架构支持,可使用--platform明确指定要支持的构建类型,如以下命令
buildx-config.toml 配置文件写法类似:

# https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md
# registry configures a new Docker register used for cache import or output.
[registry."zh-registry.geostar.com.cn"]
mirrors = ["zh-registry.geostar.com.cn"]
http = true
insecure = true

 

启用构建器

docker buildx inspect multiarch-builder --bootstrap

docker buildx 构建arm64镜像的命令

docker buildx build --platform=linux/arm64,linux/amd64 -t xxxx:tag . --push

提示:当指定多个架构时,只能使用 --push 推送到远程仓库,无法 --load,推送成功后再通过 docker pull --platform 来拉取指定架构的镜像

在x86上运行arm镜像
可参考 github/qemu-user-static ,简要描述如下:

执行如下命令安装:

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

之后即可运行arm版本的镜像,如:

docker run --rm -t arm64v8/fedora uname -m

复制代码
posted on   属于我的梦,明明还在  阅读(104)  评论(0)    收藏  举报
< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示