No se puede extraer la imagen base de Discourse porque el inicio de sesión de Docker estaba roto

Acabo de recibir este extraño error al intentar realizar el arranque inicial.

Actualicé este sitio hace 2 días sin ningún problema.

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

ADVERTENCIA: Estamos a punto de comenzar a descargar la imagen base de Discourse
Este proceso puede tardar desde unos pocos minutos hasta una hora, dependiendo de la velocidad de su red

Por favor, tenga paciencia

No se pudo encontrar la imagen 'discourse/base:2.0.20200429-2110' localmente
/usr/bin/docker: Error de respuesta del daemon: Get https://registry-1.docker.io/v2/discourse/base/manifests/2.0.20200429-2110: no autorizado: por favor, utilice un token de acceso personal para iniciar sesión.
Vea '/usr/bin/docker run --help'.
Su instalación de Docker no funciona correctamente

Vea: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
root@support:/var/discourse# docker version
Cliente:
 Versión:           18.09.6
 Versión de API:       1.39
 Versión de Go:        go1.10.8
 Commit de Git:        481bc77
 Construido:             Sat May  4 02:35:27 2019
 SO/Arquitectura:           linux/amd64
 Experimental:      false

Servidor: Docker Engine - Community
 Motor:
  Versión:          18.09.6
  Versión de API:      1.39 (versión mínima 1.12)
  Versión de Go:       go1.10.8
  Commit de Git:       481bc77
  Construido:            Sat May  4 01:59:36 2019
  SO/Arquitectura:          linux/amd64
  Experimental:     false

root@support:/var/discourse# docker ps
ID del CONTENEDOR        IMAGEN                   COMANDO             CREADO            ESTADO              PUERTOS                  NOMBRES
1e63a91934e8        local_discourse/multi   "/sbin/boot"        hace 2 días          Hace 2 días           0.0.0.0:7777->80/tcp   multi
8681e70a72a0        local_discourse/data    "/sbin/boot"        hace 4 meses        Hace 3 semanas                                 data
root@support:/var/discourse# docker ps

Es una instancia multisitio con Caddy como proxy inverso, pero una instalación bastante estándar que ha estado funcionando durante años.

¿Qué ocurre al ejecutar docker pull 'discourse/base:2.0.20200429-2110' sin parámetros adicionales?

root@support:/var/discourse# docker pull 'discourse/base:2.0.20200429-2110'
Error de respuesta del daemon: Get https://registry-1.docker.io/v2/discourse/base/manifests/2.0.20200429-2110: no autorizado: por favor, utilice un token de acceso personal para iniciar sesión
root@support:/var/discourse# 

también:

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

Tu daemon local de Docker está intentando autenticarse en ese repositorio. Revisa su configuración en el archivo JSON.

Esto parece un consejo sensato, pero no sé cómo ponerlo en práctica.

docker run -it --rm hello-world

falla de manera similar.

Acabo de actualizar Docker a la versión 19.03.8 (antes estaba en la 18.03 aproximadamente) y reinicié el sistema. Los contenedores existentes se volvieron a iniciar.

No tengo la menor idea de qué podría haber cambiado y causado este fallo. Revisé /etc/docker/key.json y parece muy similar al que hay en otra máquina.

Buscar en Google: “docker unauthorized: please use personal access token to login for public repo” no está ayudando.

docker login podría solucionar tu problema.

También puedes revisar tu archivo ~/.docker/config.json para verificar para qué registros tienes credenciales. Si no necesitas iniciar sesión, simplemente puedes eliminarlos de ese archivo.

¡Eso fue!

Fui a configuración de Docker/seguridad, generé un nuevo token y ejecuté docker login --username pfaffman, pegando la nueva clave. No sé por qué la anterior dejó de funcionar o por qué la necesitaría de repente. Hace solo dos días que realicé una actualización sin incidentes.

¡Gracias, Michael!