banner

BUILDX使用

Scroll down

本文作者:丁辉

BUILDX使用

安装

1
./install.sh

手动构建

  • 编写 Dockerfile

    1
    2
    3
    4
    5
    6
    # vi Dockerfile
    FROM --platform=$TARGETPLATFORM alpine

    RUN echo "Startup success" > /os.txt

    CMD tail -f /os.txt
  • 创建了一个名为 “buildx” 的构建器

    1
    docker buildx create --use --name=buildx --driver docker-container --driver-opt image=moby/buildkit:buildx-stable-1

    参数解释

    参数 说明
    --use 将新构建器设置为当前活动的构建器(默认构建器)
    --name=buildx 指定新构建器的名称为 “buildx”
    --driver docker 指定使用的驱动程序为 “docker”
    --driver-opt image=... 指定驱动程序选项,此处是指定 BuildKit 镜像的位置为 “moby/buildkit:buildx-stable-1”
    --config /etc/buildkitd.toml 指定配置文件
  • 构建多架构镜像并推送镜像仓库

    示例

    这里拿我自己的 Docker 仓库地址举例 “offends163”

    • 第一种方式(简单)

      1
      docker buildx build --platform linux/amd64,linux/arm/v7 -t offends163/app:v1 . --push
    • 第二种方式

      1
      docker buildx build --platform linux/amd64,linux/arm/v7 -t offends163/app:v1 --output type=registry,dest=offends163 .

    查看 buildx 当前可构建架构

    1
    docker buildx ls

    参数解释

    参数 解释
    docker buildx build 执行 Buildx 构建的命令
    --platform linux/amd64,linux/arm/v6 指定要构建的目标平台,这里包括 Linux AMD64 和 ARMv6
    -t app:v1 为构建的镜像设置标签为 “app:v1”
    -f ./Dockerfile 指定要使用的 Dockerfile 文件路径
    . 构建上下文的路径,表示当前目录是构建上下文,其中包含了构建镜像所需的文件和指令
    --output type=local,dest=.docker 指定输出类型为本地,并将构建结果输出到名为 .docker 的目录中
    --output type=oci,dest=<path> 将构建结果输出为 OCI 格式的镜像包,并保存到指定路径
    --output type=docker,dest=<path> 将构建结果输出为 Docker 格式的镜像包,并保存到指定路径
    --output type=image,name=<image_name> 将构建的镜像推送到指定的镜像仓库,指定镜像名称
    --output type=registry,dest=<registry_url> 将构建的镜像推送到指定的镜像仓库地址
    --push 将构建的镜像推送到指定的镜像仓库

常用命令

  • 删除构建器

    1
    docker buildx rm <构建器名称>
  • 设置默认构建器

    1
    docker buildx use <构建器名称>
  • 检查 Docker Buildx 构建器的详细信息

    1
    docker buildx inspect

使用脚本构建镜像并推送仓库

前提条件:

  1. 已安装 Buildx,安装脚本: https://gitee.com/offends/Docker/blob/main/Buildx/README.md

  2. 登录一个可推送镜像的仓库

    1
    docker login <仓库地址> -u <用户名> -p<密码>
  3. 根据自己需求添加架构

  4. 配置变量

1
2
3
4
export PLATFORM="linux/amd64,linux/arm/v6"
# 这里的仓库地址需要是一个可推送的镜像仓库才行,否则将推送失败
export IMAGE_NAME=<仓库地址>/<镜像名>
export IMAGE_TAG=<镜像标签>

开始构建

1
./build.sh

I'm so cute. Please give me money.

其他文章
cover
Mysql容器纳入System管理
  • 24/04/22
  • 09:37
  • Docker
cover
Docker常用配置文件配置
  • 24/04/22
  • 09:37
  • Docker
目录导航 置顶
  1. 1. BUILDX使用
    1. 1.1. 安装
    2. 1.2. 手动构建
      1. 1.2.1. 常用命令
  2. 2. 使用脚本构建镜像并推送仓库
请输入关键词进行搜索