
auto-discovery-secret-extraction 是一个专为 Kubernetes 环境设计的 initContainer 镜像,旨在解决容器扫描工具(如 Trivy)访问私有 Docker 仓库镜像时的认证问题。它通过自动发现挂载的密钥、识别目标镜像所属私有仓库的凭证,并创建与 Pod 生命周期绑定的临时密钥,为扫描工具提供安全的认证支持。临时密钥通过 ownerReference 与 Pod 关联,确保扫描任务完成后自动清理,避免凭证长期留存风险。
/secrets 目录下挂载的密钥,自动识别与目标镜像仓库域匹配的认证凭证。ownerReference 指向所在 Pod,实现与 Pod 生命周期绑定的自动删除。适用于 Kubernetes 集群中使用容器扫描工具(如 Trivy)对私有 Docker 仓库镜像进行安全扫描的场景。尤其适合需要动态管理认证凭证、避免长期密钥留存的自动化扫描流程,确保私有仓库镜像扫描的安全性和便捷性。
以下步骤介绍如何在本地搭建测试环境,验证 auto-discovery-secret-extraction 容器的功能:
创建带认证的本地 Docker 仓库
生成基本认证密钥
bashmkdir auth docker run \ --entrypoint htpasswd \ httpd:2 -Bbn testuser testpassword > auth/htpasswd
启动本地仓库容器(命令改编自 Docker 文档)
bashdocker run -d \ -p "127.0.0.1:5000:5000" \ --name registry \ --restart=always \ -v "$(pwd)"/auth:/auth \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ registry:2
登录本地仓库
bashdocker login localhost:5000 -u testuser -p testpassword
配置 Kind 集群与本地仓库
创建包含本地仓库配置的 Kind 集群(命令改编自 Kind 文档)
bashcat <<EOF | kind create cluster --config=- kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane containerdConfigPatches: - |- [plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:5000"] endpoint = ["http://registry:5000"] [plugins."io.containerd.grpc.v1.cri".registry.configs."registry:5000".tls] insecure_skip_verify = true EOF docker network connect "kind" "registry" cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: name: local-registry-hosting namespace: kube-public data: localRegistryHosting.v1: | host: "localhost:5000" help: "https://kind.sigs.k8s.io/docs/user/local-registry/" EOF
推送镜像与创建测试 Pod
推送测试镜像到本地仓库
bashdocker pull ubuntu docker tag ubuntu localhost:5000/ubuntu docker push localhost:5000/ubuntu
创建使用本地仓库镜像的测试 Pod
bashcat <<EOF | kubectl apply -f - apiVersion: v1 kind: Secret metadata: name: regcred namespace: default data: .dockerconfigjson: ewoJImF1dGhzIjogewoJCSJsb2NhbGhvc3Q6NTAwMCI6IHsKCQkJImF1dGgiOiAiZEdWemRIVnpaWEk2ZEdWemRIQmhjM04zYjNKayIKCQl9Cgl9Cn0= type: kubernetes.io/dockerconfigjson --- apiVersion: v1 kind: Pod metadata: name: private-reg namespace: default spec: containers: - name: private-reg-container image: localhost:5000/ubuntu command: ["sleep"] args: ["999999"] imagePullSecrets: - name: regcred EOF
/secrets 目录下挂载的密钥文件,分析密钥中包含的仓库认证信息。ownerReference 指向所在 Pod。/secrets 目录。[镜像ID] [临时密钥名称]。ownerReference 机制实现临时密钥自动清理。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务