Аутентификация — Невозможно Пройти Аутентификацию В Dockerhub Docker.io С Помощью Ctr; Отлично Работает С Crictl

  • Автор темы Mojor
  • Обновлено
  • 20, Oct 2024
  • #1

Аутентификация работает дальше

$ sudo ctr images pull --http-dump --http-trace --user "evancarroll:$TOKEN" docker.io/alpine:3
INFO[0000] HEAD /v2/alpine/manifests/3 HTTP/1.1
INFO[0000] Host: registry-1.docker.io
INFO[0000] Accept: application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, */*
INFO[0000] User-Agent: containerd/v1.5.11-k3s2
INFO[0000]
docker.io/alpine:3: resolving      |--------------------------------------|
elapsed: 0.1 s      total:   0.0 B (0.0 B/s)
INFO[0000] HTTP/1.1 401 Unauthorized
INFO[0000] Content-Length: 149
INFO[0000] Content-Type: application/json
INFO[0000] Date: Wed, 15 Jun 2022 16:00:59 GMT
INFO[0000] Docker-Distribution-Api-Version: registry/2.0
INFO[0000] Strict-Transport-Security: max-age=31536000
INFO[0000] Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:alpine:pull"
INFO[0000]
INFO[0000] POST /token HTTP/1.1
INFO[0000] Host: auth.docker.io
INFO[0000] Content-Type: application/x-www-form-urlencoded; charset=utf-8
docker.io/alpine:3: resolving      |--------------------------------------|
elapsed: 0.2 s      total:   0.0 B (0.0 B/s)
INFO[0000] client_id=containerd-client&grant_type=password&password=HIDDEN&scope=repository%3Aalpine%3Apull&service=registry.docker.io&username=evancarrollHTTP/1.1 200 OK
INFO[0000] Transfer-Encoding: chunked
INFO[0000] Content-Type: application/json; charset=utf-8
INFO[0000] Date: Wed, 15 Jun 2022 16:00:59 GMT
INFO[0000] Strict-Transport-Security: max-age=31536000
INFO[0000] X-Trace-Id: 5da4dacdeb208ead79e15a59f83499b2
INFO[0000]
INFO[0000] 833
INFO[0000] {"access_token":"HIDDEN","scope":"","expires_in":300,"issued_at":"2022-06-15T16:00:59.464114622Z"}
INFO[0000]
INFO[0000] 0
INFO[0000]
INFO[0000] HEAD /v2/alpine/manifests/3 HTTP/1.1
INFO[0000] Host: registry-1.docker.io
INFO[0000] Accept: application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, */*
INFO[0000] Authorization: Bearer HIDDEN
docker.io/alpine:3: resolving      |--------------------------------------|
elapsed: 0.3 s      total:   0.0 B (0.0 B/s)
INFO[0000] HTTP/1.1 401 Unauthorized
INFO[0000] Content-Length: 149
INFO[0000] Content-Type: application/json
INFO[0000] Date: Wed, 15 Jun 2022 16:00:59 GMT
INFO[0000] Docker-Distribution-Api-Version: registry/2.0
INFO[0000] Strict-Transport-Security: max-age=31536000
INFO[0000] Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:alpine:pull",error="insufficient_scope"
INFO[0000]
INFO[0000] trying next host error="pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed" host=registry-1.docker.io
ctr: failed to resolve reference "docker.io/alpine:3": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
, when I use
--http-dump --http-trace

$ sudo ctr images pull --user "evancarroll:$TOKEN" docker.io/alpine:3
docker.io/alpine:3: resolving
INFO[0000] trying next host error="pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed" host=registry-1.docker.io
ctr: failed to resolve reference "docker.io/alpine:3": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

Но когда я пробую ту же команду

ctr
, I get an error:

$ sudo crictl pull --creds "evancarroll:$TOKEN" docker.io/alpine:3

Вы можете увидеть

--creds
,

crictl

#dockerhub #аутентификация #containerd

Mojor


Рег
18 Mar, 2007

Тем
76

Постов
179

Баллов
589
  • 25, Oct 2024
  • #2

ctr images pull docker.io/library/alpine

Проблема здесь заключается в простом правильном синтаксисе для

docker pull alpine
isn't
docker.io/library/alpine
но
docker.io/alpine
that should now work with
/library
слишком.

ctr images pull docker.io/library/alpine:latest

IRC-логи

Спасибо выходит

#docker
and
ada
в IRC
larks
for helping out with this,

larsks> EvanCarroll: наверное нужно тег туда включить (

ctr images pull docker.io/library/alpine:latest
). The
--creds "evancarroll:$TOKEN"
существует, потому что это фактический путь к хранилищу изображений. Где-то есть какое-то волшебство, которое трансформирует
docker.io/library/alpine:latest
into
docker.io/alpine:latest
; Я не знаю, на стороне клиента или на стороне сервера; Ада будет знать об этом гораздо больше, чем я.

И благодаря @ada за показ места в коде, где это описано., и уточняя

Library/ — это пространство имен для всех изображений верхнего уровня в DockerHub с Docker. Это пространство имен подразумевается, если вы опустите часть реестра и пространства имен в теге:

ctr
==
docker.io/library/$IMAGE:$TAG

 

Qqqwerterrq


Рег
01 May, 2011

Тем
92

Постов
180

Баллов
670
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно