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

如何配置Docker默认推送镜像至本地托管Registry?

如何让Docker默认推送镜像到本地Nexus托管仓库?

明确说明:Docker本身没有官方全局配置直接指定默认推送仓库,但可以通过以下几种实操方式实现需求,让开发者无需手动输入本地Registry地址:

1. 配置Shell别名,自动添加Registry前缀

这是最直接的落地方式,让开发者构建镜像时自动带上托管仓库地址:

  • 让开发者在个人Shell配置文件(~/.bashrc或~/.zshrc)中添加别名:
    alias docker-build='docker build -t nexus-hosted.example.com:8081/$1:latest .'
    
    之后构建镜像只需执行docker-build my-app,就会自动生成带托管仓库前缀的镜像标签,推送时直接敲docker push my-app即可(标签已包含Registry地址)。
  • 同时可预先配置托管仓库的认证信息,避免每次推送输密码:
    执行docker login nexus-hosted.example.com:8081,认证信息会自动写入~/.docker/config.json,文件结构类似:
    {
      "auths": {
        "nexus-hosted.example.com:8081": {}
      }
    }
    

2. 配置Docker Daemon信任本地Registry

如果你的Nexus是HTTP协议或使用自签HTTPS证书,必须先让Docker信任该Registry,否则推送会报错:

  • 修改/etc/docker/daemon.json(Linux系统):
    {
      "insecure-registries": ["nexus-hosted.example.com:8081"],
      "registry-mirrors": ["nexus-proxy.example.com:8081"]
    }
    
    其中registry-mirrors对应你用于拉取镜像的代理仓库,insecure-registries解决HTTP Registry的信任问题。
  • 重启Docker生效:
    sudo systemctl restart docker
    

如果是HTTPS自签证书,将证书文件放到/etc/docker/certs.d/nexus-hosted.example.com:8081/目录下,再重启Docker即可。

3. Nexus路由规则兜底(可选)

如果担心部分开发者忘记添加前缀,可在Nexus托管仓库中配置路由规则:

  • 在Nexus托管仓库的设置页面添加路由,匹配所有镜像推送请求,将原本要推送到Docker Hub的请求重定向到本地仓库。不过该方案仍需开发者推送时指定Nexus地址,更多作为补漏手段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:35:18