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

Kubernetes部署私有Docker Registry镜像的正确路径格式是什么?

私有Docker Registry镜像拉取路径格式要求

私有镜像的完整路径需要严格遵循 <私有Registry访问地址[:端口]>/<命名空间/镜像名>:<标签> 格式,和Docker Hub的路径规则唯一的区别是前缀替换为你自己的私有仓库地址:

  • 如果你的私有仓库对外访问地址是192.168.1.100:5000,那你示例镜像的完整路径为192.168.1.100:5000/summer/my-app:version1.1
  • 如果私有仓库用的是HTTP协议未配置HTTPS证书,需要提前在所有K8s节点的容器运行时(Docker/Containerd)配置中把该仓库地址加入不安全仓库列表,否则运行时会默认拒绝HTTP协议的镜像拉取请求

必须配套配置:镜像拉取凭证

仅路径格式正确大概率还是会出现ImagePullBackOff错误,因为K8s默认没有私有仓库的访问权限,需要提前配置访问凭证:

  1. 先在对应命名空间下创建存储私有仓库凭证的Secret:
kubectl create secret docker-registry regcred \
--docker-server=<替换为你的私有Registry访问地址,比如192.168.1.100:5000> \
--docker-username=<私有仓库登录用户名> \
--docker-password=<私有仓库登录密码>
  1. 在Deployment配置中添加imagePullSecrets字段关联刚才创建的凭证,参考配置如下:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      # 关联私有仓库拉取凭证
      imagePullSecrets:
      - name: regcred
      containers:
      - name: my-app
        # 替换为你的私有镜像完整路径
        image: 192.168.1.100:5000/summer/my-app:version1.1
        ports:
        - containerPort: 80

快速排查步骤

如果配置完成后还是拉取失败,可以按顺序排查:

  • 登录任意一台K8s工作节点,手动执行docker pull <完整镜像路径>,确认网络连通、凭证正确、镜像确实存在
  • 确认Secret和Deployment在同一个命名空间下,Secret不支持跨命名空间使用
  • 如果你使用Containerd作为容器运行时,需要单独在Containerd配置中添加私有仓库相关配置,和Docker配置不通用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:39:01