使用docker buildx 构建跨平台镜像

更新于 2024-04-13 17:29 110
专栏: Docker 标签: docker

利用 Docker 19.03 引入的插件,可以很轻松地构建多平台 Docker 镜像。buildx 是 docker build … 命令的下一代替代品,它利用 BuildKit[5] 的全部功能扩展了 docker build 的功能。

1.启用插件

  1. export DOCKER_CLI_EXPERIMENTAL=enabled

2.查看是否启动成功

  1. docker buildx version
  2. # 输出
  3. github.com/docker/buildx v0.9.1 ed00243a0ce2a0aee75311b06e32d33b44729689

3.启用 binfmt_misc

  1. docker run --privileged --rm tonistiigi/binfmt --install all
  2. # 或者
  3. docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d
  1. $ docker buildx version
  2. github.com/docker/buildx v0.9.1 ed00243a0ce2a0aee75311b06e32d33b44729689

4.创建 builder 并切换

  1. # 命令可以查看 builder 列表
  2. docker buildx ls
  3. # 创建
  4. docker buildx create --name mybuilder
  5. # 切换
  6. docker buildx use mybuilder

5.启动 builder

我们新创建的 mybuilder 当前状态为 inactive,需要启动才能使用。

  1. docker buildx inspect --bootstrap mybuilder

6.编写dockerfile

正常编写即可

7.构建

  1. # 登录docker(推送使用不推送不需要登录)
  2. docker login
  3. # 构建并推送到dockerhub 【--push】代表推送
  4. docker buildx build -t hslr/sun-proxy --push --platform=linux/arm,linux/arm64,linux/amd64 .

参考文章:
https://zhuanlan.zhihu.com/p/622399482

https://blog.mafeifan.com/DevOps/Docker/Docker-%E5%AD%A6%E4%B9%A0%E7%B3%BB%E5%88%9729-%E4%BD%BF%E7%94%A8%20Docker%20Buildx%20%E6%9E%84%E5%BB%BA%E5%A4%9A%E7%A7%8D%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E9%95%9C%E5%83%8F.html

BLOG

搜索文章