Discourse-Base-Image kann nicht gezogen werden, da der Docker-Login defekt war

Ich habe gerade diesen seltsamen Fehler beim Bootstrapping erhalten.

Ich habe diese Seite vor 2 Tagen ohne Zwischenfälle aktualisiert.

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

Es handelt sich um eine Multisite-Instanz mit Caddy als Reverse-Proxy, aber eine relativ Standard-Installation, die seit Jahren funktioniert.

Was passiert bei einem bloßen docker pull 'discourse/base:2.0.20200429-2110'?

root@support:/var/discourse# docker pull 'discourse/base:2.0.20200429-2110'
Fehlerantwort vom Daemon: Get https://registry-1.docker.io/v2/discourse/base/manifests/2.0.20200429-2110: nicht autorisiert: bitte verwenden Sie einen persönlichen Zugriffstoken zum Anmelden
root@support:/var/discourse# 

auch:

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

Ihr lokaler Docker-Daemon versucht, sich bei diesem Repository zu authentifizieren. Überprüfen Sie die Konfiguration in der JSON-Datei.

Das klingt nach kluger Beratung, aber ich weiß nicht, wie ich sie umsetzen soll.

docker run -it --rm hello-world

scheitert ebenfalls.

Ich habe Docker gerade auf 19.03.8 aktualisiert (vorher war es etwa 18.03) und den Rechner neu gestartet. Die bestehenden Container sind wieder hochgefahren.

Ich habe keine Ahnung, was sich geändert haben könnte, um das zu beschädigen. Ich habe mir /etc/docker/key.json angesehen, und es sieht sehr ähnlich aus wie auf einem anderen Rechner.

Googeln nach: “docker unauthorized: please use personal access token to login for public repo” hilft nicht weiter.

docker login könnte dein Problem lösen.

Du kannst auch deine ~/.docker/config.json durchsuchen, um zu prüfen, für welche Registries du Anmeldeinformationen hast. Wenn du dich nicht anmelden musst, kannst du sie einfach aus dieser Datei entfernen.

Das war’s!

Ich bin zu Docker-Einstellungen/Sicherheit gegangen, habe ein neues Token erstellt und docker login --username pfaffman ausgeführt, wobei ich den neuen Schlüssel eingefügt habe. Ich weiß nicht, warum der alte plötzlich nicht mehr funktioniert hat oder warum ich ihn auf einmal brauche. Erst vor zwei Tagen habe ich ein Upgrade ohne Probleme durchgeführt.

Danke, Michael!