快速的方法. 新版本的Docker.只需要改把Docker配置改成:

一.新版本(Containerd)

Docker 配置

  1. 打开设置
  2. 打开 Features in development
  3. 选择 Beta featuresExperimental features
  4. 勾选 Use Containerd ....
  5. 保存

PS: 这个方法会把所有镜像和运行的容器清空…..(如果有很多资料,慎用).

1
docker build --platform linux/arm64 -t dji-cloud-api-impl .

二. 使用 buildx

1. 使用multiarch/qemu-user-static创建多架构环境

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

2. 创建自定义Builder

1
2
3
4
5
6
7
8
9
# 创建 builder 并使用
docker buildx create --name mybuilder --driver docker-container --use

# 创建指定架构builder

docker buildx create --name mybuilder --driver docker-container --platform linux/amd64,linux/arm64 --use

# 使用已存在的 builder
docker buildx use mybuilder

3. 初始自定义buildx

1
docker buildx inspect --bootstrap

4. List buildx

1
docker buildx ls

5. 构建并推送远程(–push)

1
2
3
4

docker login --username=... xxdocker.com

docker buildx build --platform linux/amd64,linux/arm64 -t registry.cn-hangzhou.aliyuncs.com/coolxiaoyao/dji-cloud-api-impl . --push

6. 本地构建(–load)

构建时不推送远程,只加载到本地, 镜像名可以不写远程地址.

PS说明:

--platform: 一次只能使用一个架构, 不能同时编译多个架构镜像.

1
docker buildx build --platform linux/arm64 -t dji-cloud-api-impl . --load

7. 删除 Builder

1
docker buildx rm mybuilder