在x86架构下如何打包arm64架构的镜像,docker buildx 是docker的一个插件,使用qemu作为底层支撑。
前提条件| 组件 | 版本 |
|---|---|
| docker | v20.10.15 |
| rocky linux (centos 8) | v8.5 |
参考:Build multi-platform images
安装
docker run --privileged --rm tonistiigi/binfmt --install all
创建builder
docker buildx create --use --name mybuild default构建镜像
使用go语言为例子,参考这位大佬博客:
cat > hello.go <fmt.Printf("Hello, %s!n", runtime.GOARCH) } EOF
Dockerfile
cat > Dockerfile <开始构建镜像
# 本地打包 docker buildx build -t test --platform=linux/arm64 . --load # 在远程主机打包,需要修改docker.service文件 docker -H tcp://192.168.10.75:2375 buildx build -t test --platform=linux/arm64 . --load推送http私库问题正常情况下,推送Dockerhub:
docker buildx build -t oneslide/test --platform=linux/arm64 . --push但是推送http私库推送不了,目前无人解决,参考issue 218



