You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用docker buildx构建镜像并推送到本地自定义registry容器

Docker Buildx多架构镜像推送至自定义私有Registry方案

前置准备

  1. 提前部署好你的私有Registry,完成本地Docker客户端的登录认证:
    docker login <你的私有Registry地址>
    # 示例:docker login registry.mycompany.com:5000
    
  2. 确保你已经创建了支持多架构构建的buildx实例:
    # 创建多架构构建器并启用
    docker buildx create --name multiarch --use
    # 初始化构建器环境
    docker buildx inspect multiarch --bootstrap
    

核心操作方法

docker buildx的--push参数本身没有绑定Docker Hub,推送目标完全由你构建时指定的镜像标签决定,只需要给镜像打带私有Registry地址前缀的标签即可:

  • 标签格式规则:<私有Registry地址>/<项目/命名空间>/<镜像名>:<版本标签>
  • 完整构建命令示例:
    docker buildx build \
      --platform linux/amd64,linux/arm64,linux/arm/v7 \
      -t registry.mycompany.com:5000/apps/demo-service:v1.2.0 \
      --push \
      .
    

执行上述命令后,buildx会自动将所有指定架构的镜像、以及统一的多架构镜像清单全部推送到你指定的私有Registry,不会产生任何到Docker Hub的请求。

常见问题处理

  • 自签名证书Registry推送报错:将Registry的根证书放到本地Docker证书目录/etc/docker/certs.d/<你的私有Registry地址>/ca.crt,重启Docker服务后重试即可
  • 权限不足报错:确认登录Registry的账号对标签中对应的项目/命名空间有读写权限
  • 需要同时导出单架构镜像到本地:多架构镜像清单无法直接存入本地默认镜像存储,如需导出单架构镜像到本地,去掉--push参数改为--load,同时只指定单个架构即可:
    docker buildx build \
      --platform linux/amd64 \
      -t registry.mycompany.com:5000/apps/demo-service:v1.2.0 \
      --load \
      .
    

内容的提问来源于stack exchange,提问作者threehundredfortyfive

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:06:03