Как войти в Docker Hub при использовании контейнера?
С докером я бы запустилdocker login
, но как сделать то же самое сctr
/containerd
?
Нам необходимо войти в систему из-за превышения лимита скорости:
ctr: не удалось скопировать: httpReaderSeeker: не удалось открыть: неожиданный код состояния https://registry-1.docker.io/v2/library/[...]: 429 Слишком много запросов — сообщение сервера: слишком много запросов: вы достигли своего ограничение скорости вытягивания. Вы можете увеличить лимит, пройдя аутентификацию и обновив: https://www.docker.com/increase-rate-limit.
Следуя документации контейнера с/etc/containerd/config.toml
:
version = 2
[plugins."io.containerd.grpc.v1.cri".registry.configs."docker.io".auth]
username = "myusername"
password = "mypassword"
кажется, не работает.
1 ответ
Да, я тоже, и я не понимаю почему. Итак, я отредактировал свою конфигурацию, как указано в руководстве: https://docs.d2iq.com/dkp/komander/1.4/operations/manage-docker-hub-rate-limits/
Как вы можете видеть, исходный код в документе
[plugins."io.containerd.grpc.v1.cri".registry.configs."docker.io".auth]
Если изменить это (полный домен), все работает.
[plugins."io.containerd.grpc.v1.cri".registry.configs."registry-1.docker.io".auth]
Перезапустите контейнер и проверьте.
Тестирование, написание bash-скрипта
TOKEN=$(curl --user 'YOUR_LOGIN_USER:YOUR_LOGIN_PASSWORD' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest | grep -i rate
Мой результат, доступен 198/200.
ratelimit-limit: 200;w=21600
ratelimit-remaining: 198;w=21600