当前位置: 首页 > 知识库问答 >
问题:

无法从私有注册表中提取映像,需要身份验证错误

戎永福
2023-03-14

我已经用自签名证书设置了一个私有docker注册表。

docker run -d -p 443:5000 --restart=always --name registry -v `pwd`/auth:/auth 
-e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/domain.crt 
-e REGISTRY_HTTP_TLS_KEY=/domain.key

crt和domain.key是使用OpenSSL生成的。

若要从远程主机进行连接,

cp domain.crt /etc/pki/ca-trust/source/anchors/mydockerregistry.com.crt
update-ca-trust
systemctl daemon-reload
systemctl restart docker
docker login mydockerregistry.com --username=test
password: test
kubectl create secret docker-registry my-registry --docker-server=mydockerregistry.com --docker-username=test --docker-password=test --docker-email=abc.com

此外,我还在工作节点中执行了docker注册表步骤中的自签名证书,

cp domain.crt /etc/pki/ca-trust/source/anchors/mydockerregistry.com.crt
update-ca-trust
systemctl daemon-reload
systemctl restart docker

给定deployment.yaml文件的imagePullSecrets中的名称。我试图在Kubernetes集群(Calico网络)中创建一个豆荚,但它无法拉图像。

deployment.yaml

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: test-image
  labels:
    app: test-image
    chart: test-image
spec:
  containers:
    - name: {{ .Chart.Name }}
      image: "mydockerregistry.com/test-image:latest"
      imagePullPolicy: Always
  imagePullSecrets:
    - name: my-registry

我可以做docker登录myregistrydomain并从worker节点提取映像

我在配置中缺少什么吗?

共有1个答案

秦奇
2023-03-14

create secret命令中的注册表名称有错误。

Kubectl create secret docker-registry my-registry--docker-server=myregistryregistry.com--docker-username=test--docker-password=test--docker-email=abc.com

myregistryregistry.com更改为mydockerregistry.com,您已经在docker登录中使用了它。

 类似资料:
  • 问题内容: 我已经建立了一个4节点kubernetes集群,该集群运行都在CoreOS上运行的多容器Pod。这些图像来自公共和私人存储库。现在,我必须登录到每个节点,并在每次更新图像时手动下拉图像。我希望能够自动将其拉出。 我试过在每台服务器上运行docker登录并将.dockercfg文件放在/ root和/ core中 我也使用.docker / config.json完成了上述操作 我已将密

  • 我在kubernetes(minikube)上有问题,从Docker上的本地图像库中提取图像。创建了Docker存储库:

  • 我一直在寻找使用各种AWS服务来处理我们下一个主要项目的基础设施。我们开始研究EC2实例上的docker容器,但在进一步研究AWS Lambda之后,这似乎是一条值得探索的道路。 使用AWS Lambda范例,我们只需使用Lambda函数作为逻辑粘合剂,将数据和事件(来自其他AWS服务)保存在一起。 例如,如果我们产品的用户创建了一个新记录,AWS Lambda可以在该事件中触发,我们可以调用La

  • 我试着用laravel做一个登录/注册的简单应用。。。我目前使用的是5.2版本的laravel。 在路线上,我写道: 所以现在当我尝试注册用户在localhost:8888/auth/register-我填写字段,但当我点击注册然后我得到错误消息: 用户中的FatalErrorException。php第8行:找不到类“lightlight\Foundation\Auth\User” 那么我如何在

  • 我的笔记本电脑上安装了ubuntu。 我启动了一个私有docker注册表(支持ssl的htpasswd安全),并将其添加到覆盖网络上(因此可以从其他主机/虚拟机访问) 以下是代码(docker-compose.yaml): 因此,我的注册表正在以下链接中运行(通过dns,我可以在浏览器中进行验证):https://home-thinkpad-t420s:5000/v2/_catalog 现在我在笔

  • 问题内容: 我收到错误 NOAUTH必需的身份验证 。我的laravel版本是5.3,我正在使用predis 1.1.1连接redis。 在etc / redis / redis.conf中,我有: 在.env文件中 在config / database.php中,我有: 我通过以下方式连接redis: 并像这样使用它: 因此,当我注释掉并将密码发送为null时,它可以工作,但在密码到位后却无法工