Impossible de récupérer l'image de base de Discourse car la connexion Docker était défaillante

Je viens de recevoir cette erreur étrange en tentant de démarrer le bootstrap.

J’ai mis à jour ce site il y a 2 jours sans incident.

root@support:/var/discourse# ./launcher bootstrap multi

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

Unable to find image 'discourse/base:2.0.20200429-2110' locally
/usr/bin/docker: Error response from daemon: Get https://registry-1.docker.io/v2/discourse/base/manifests/2.0.20200429-2110: unauthorized: please use personal access token to login.
See '/usr/bin/docker run --help'.
Your Docker installation is not working correctly

See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
root@support:/var/discourse# docker version
Client:
 Version:           18.09.6
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        481bc77
 Built:             Sat May  4 02:35:27 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.6
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       481bc77
  Built:            Sat May  4 01:59:36 2019
  OS/Arch:          linux/amd64
  Experimental:     false

root@support:/var/discourse# docker ps
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS              PORTS                  NAMES
1e63a91934e8        local_discourse/multi   "/sbin/boot"        2 days ago          Up 2 days           0.0.0.0:7777->80/tcp   multi
8681e70a72a0        local_discourse/data    "/sbin/boot"        4 months ago        Up 3 weeks                                 data
root@support:/var/discourse# docker ps

Il s’agit d’une instance multisite avec Caddy en tant que proxy inverse, mais une installation assez standard qui fonctionne depuis des années.

Que se passe-t-il lors d’un simple docker pull 'discourse/base:2.0.20200429-2110' ?

root@support:/var/discourse# docker pull 'discourse/base:2.0.20200429-2110'
Erreur de réponse du démon : Get https://registry-1.docker.io/v2/discourse/base/manifests/2.0.20200429-2110 : non autorisé : veuillez utiliser un jeton d'accès personnel pour vous connecter
root@support:/var/discourse# 

aussi :

root@support:/var/discourse# curl https://registry-1.docker.io/v2/discourse/base/manifests/2.0.20200429-2110
{"errors":[{"code":"UNAUTHORIZED","message":"authentification requise","detail":[{"Type":"repository","Class":"","Name":"discourse/base","Action":"pull"}]}]}
root@support:/var/discourse# 

Votre démon Docker local tente de s’authentifier sur ce dépôt. Vérifiez sa configuration dans le fichier JSON.

Cela ressemble à un conseil sage, mais je ne sais pas comment l’appliquer.

docker run -it --rm hello-world

échoue de la même manière.

Je viens de mettre à jour Docker vers la version 19.03.8 (j’étais sur la 18.03 environ) et j’ai redémarré. Les conteneurs existants se sont relancés.

Je n’ai aucune idée de ce qui aurait pu changer et causer cette panne. J’ai examiné /etc/docker/key.json et il ressemble beaucoup à celui d’une autre machine.

Une recherche Google : “docker unauthorized: please use personal access token to login for public repo” ne m’aide pas.

docker login peut résoudre votre problème.

Vous pouvez également consulter votre fichier ~/.docker/config.json pour vérifier les registres pour lesquels vous disposez d’informations d’identification. Si vous n’avez pas besoin de vous connecter, vous pouvez simplement les supprimer de ce fichier.

C’était bien ça !

Je suis allé dans Paramètres Docker/Sécurité, j’ai généré un nouveau jeton et j’ai exécuté docker login --username pfaffman en collant la nouvelle clé. Je ne sais pas pourquoi l’ancienne a cessé de fonctionner ou pourquoi j’en avais soudainement besoin. Ce n’était que deux jours plus tôt que j’avais effectué une mise à jour sans incident.

Merci, Michael !