Al presionar la imagen de la ventana acoplable (después de iniciar sesión correctamente) desde mi host, obtengo "no autorizado: se requiere autenticación".
Detalles abajo.
-bash-4.2# docker login --username=asamba [email protected]
WARNING: login credentials saved in /root/.docker/config.json
*Login Succeeded*
-bash-4.2#
-bash-4.2# docker push asamba/docker-whale
Do you really want to push to public registry? [y/n]: y
The push refers to a repository [docker.io/asamba/docker-whale] (len: 0)
faa2fa357a0e: Preparing
unauthorized: authentication required
- Versión de Docker: 1.9.1 (tanto cliente como servidor)
- http://hub.docker.com también ha creado el repositorio (asamba / docker-whale).
El / var / log / messages muestra 403, no sé si este docker. Vea abajo.
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884872524Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}"
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884988574Z" level=error msg="Handler for POST /v1.21/images/asamba/docker-whale/push returned error: Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced"
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.885013241Z" level=error msg="HTTP Error" err="Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced" statusCode=403
Apr 16 11:39:05 localhost journal: time="2016-04-16T11:39:05.420188969Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}"
Apr 16 11:39:06 localhost kernel: XFS (dm-4): Mounting V4 Filesystem
Apr 16 11:39:06 localhost kernel: XFS (dm-4): Ending clean mount
Apr 16 11:39:07 localhost kernel: XFS (dm-4): Unmounting Filesystem
Se agradece cualquier ayuda, por favor avíseme si necesita más información. Hice el empujón con -f también. ¡Sin suerte!
Respuestas:
Editar (13/08/2017)
Según el comentario de @ KaraPirinc, en la versión 17 de la ventana acoplable para iniciar sesión (Paso 1),
También tuve el mismo problema. Así es como lo resuelvo.
Paso 1: inicie sesión en Docker Hub
Paso 2: crea un repositorio en Docker Hub . digamos " mysqlserver: sql ".
fuente
docker login
también funciona sin los parámetrosLa solución que publicaste no me funciona ...
Esto es lo que me funciona:
Cree el repositorio con el nombre deseado.
Cuando confirme la imagen, asigne un nombre a la imagen como el repositorio, incluido el nombre de usuario
<dockerusername>/desired-name
. Por ejemploradu/desired-name
,.fuente
¡OKAY! no importa; Encontré la solución. con 403 Se sospecha que HTTP no va a la URL correcta.
Cambie el archivo que tiene las credenciales de inicio de sesión almacenadas
~/.docker/config.json
del predeterminado generado deto - Note el cambio de docker.io -> index.docker.io/v1. Ese es el cambio.
Espero que ayude.
Tenga en cuenta que el campo de autenticación debe ser "nombre de usuario: contraseña" codificado en base64. Por ejemplo: "nombre de usuario: contraseña" codificado en base64 es "dXNlcm5hbWU6cGFzc3dvcmQ ="
por lo que su archivo contendría:
fuente
sudo docker login -e [email protected] -u someuser -p somepass https://index.docker.io/v1/
docker login -u someuser https://index.docker.io/v1/
Esto le pedirá la contraseña, evitando que termine en el historial de comandos.si está utilizando heroku, asegúrese de no olvidar "heroku container: login" antes de presionar.
fuente
Me estaba encontrando con un problema similar con un mensaje de error igualmente inútil, pero resultó ser porque estaba tratando de enviar una imagen que había creado contra una instancia administrada por una máquina acoplable.
Cuando inicié sesión en la instancia, lo hice
docker login
ydocker push
todo funcionó bien.fuente
Tuve el mismo problema pero lo arreglé con push con la URL especificada. como: inicio de sesión de docker -u https://index.docker.io/v1/
salida de la consola:
fuente
Aunque el proceso estándar es iniciar sesión y luego presionar el registro de la ventana acoplable, el truco para superar este problema en particular es iniciar sesión proporcionando el nombre de usuario y la contraseña en la misma línea.
Entonces :
Trabajos
mientras
Falla
fuente
Incluso inicié sesión y verifiqué toda la configuración, ¡todavía no funciona!
Resultó que cuando construyo mi ventana acoplable, olvido poner mi nombre de usuario antes del nombre del repositorio
(construir con éxito)
Y luego, cuando empujé a mi repositorio, usé
Mostrará el
unauthorized authentication required
Entonces, la solución es el nombre de la compilación y el impulso debe ser exactamente el mismo
fuente
El problema al que se enfrentan los novatos es que tendemos a tratar el repositorio de Docker Hub como un repositorio de Maven y pensamos que podría contener muchos archivos, carpetas y otros contenidos diferentes.
Un repositorio de Docker, por otro lado, es solo una imagen única, no contiene nada más. Puede contener diferentes versiones de la misma imagen, pero solo contendrá una imagen.
Por lo tanto, asigne a su repositorio en docker hub el mismo nombre que la imagen que desea insertar en él y use su nombre de usuario de dockerhub como prefijo. Por ejemplo, si su nombre de usuario es myusername y el nombre de su imagen es docker-whale , asegúrese de nombrar su repositorio dockerhub como docker-whale y use los siguientes comandos para etiquetar y enviar su imagen al repositorio:
fuente
Si está publicando una nueva imagen privada por primera vez, asegúrese de que su suscripción admita esta imagen adicional.
Docker le permite tener 6 imágenes privadas nombradas, incluso si solo paga por 5, pero no para presionar esa sexta imagen. La falta de un mensaje informativo es confusa e irritante.
fuente
Aquí la solución para mi caso (repos privados, plan de cuenta gratis)
https://success.docker.com/Datacenter/Solve/Getting_%22unauthorized%3A_authentication_required%22_when_trying_to_push_image_to_DTR
El nombre de la compilación de la imagen para insertar debe tener el mismo nombre que los repositorios.
Ejemplo: los repositorios en Docker Hub son: accountName / resposName nombre de compilación de la imagen "accountName / resposName" -> docker build -t accountName / resposName
luego escriba docker push accountName / resposName: latest
Eso es todo.
fuente
Lo que funcionó para mí fue crear un nuevo repositorio y cambiar el nombre de la imagen con
$ docker tag image_id myname/server:latest
fuente
Asegúrese de tener más espacios para imágenes privadas.
En mi caso, convertí un usuario en una organización y perdió su imagen privada gratuita, por lo que los empujes anteriores que funcionaron, ya no funcionaron.
fuente
Mi problema fue un token de autorización no válido después de 5 minutos. El empujón tomó más de 5 minutos debido al tamaño de la imagen.
Lo solucioné aumentando la "Duración del token de autorización" a 10 minutos.
fuente
docker login
en otra ventana de terminal poco antes de que finalizara la cargaAdmin Area -> Settings -> CI/CD -> Container Registry
. ruta URL:/admin/application_settings/ci_cd
.Asegúrese de que el nombre de su repositorio de Docker coincida con el nombre de su repositorio de Docker local. por ejemplo, digamos si su nombre de repositorio local es "kavashgar / nodjsapp"
entonces también debería tener un nombre de repositorio "kavashgar" en la ventana acoplable
fuente
en su archivo de configuración ~ / .docker / config.json agregue
donde XXXXX es la codificación base64 de su nombre de usuario: contraseña (se incluye :) de https://hub.docker.com
en mi caso tuve el mismo error con un tirón. el problema (en Windows) fue provocado por el proceso de ejecución de doble ventana acoplable, así que elimínelos a todos y reinicie un servicio y funciona.
fuente
Ya ha habido buenas respuestas, pero me gustaría mencionar una: NO es necesario crear un repositorio antes de enviarlo.
El problema para mí fue que no configuré el nombre de usuario correcto de la cuenta en la que inicié sesión. Pero una vez que se establece el nombre de usuario correcto antes de la imagen (por ejemplo
YOURNAME/YOURIMAGE
) a través de su etiqueta, puede enviarlo sin crear un nuevo repositorio por adelantado.fuente
El mismo problema aquí, al presionar la imagen:
Lo que hice:
Que imprimió:
Solución: utilice la sintaxis de inicio de sesión más reciente.
Le pedirá el nombre de usuario y la contraseña de forma interactiva. Entonces el empuje de la imagen simplemente funciona.
Incluso después de usar la nueva sintaxis, mi se
~/.docker/config.json
ve así después de iniciar sesión:Entonces, la credencial está en el llavero de macOS.
fuente
Recibí un error similar para sudo docker push / sudo docker pull en el repositorio ecr.Esto se debe a que aws cli está instalado en mi usuario (abc) y docker está instalado en el usuario root.He intentado ejecutar sudo docker push en mi usuario (abc)
Se corrigió esto instalando aws cli en root, configurado aws usando aws configure en root y ejecutando sudo docker push to ecr en el usuario root
fuente
Pruebe
docker logout
primero, luego vuelva a iniciar sesión condocker login
fuente
Puede mv el archivo xxx / .docker / config.json en algún lugar para manejarlo. Luego intente iniciar sesión nuevamente para crear un nuevo archivo config.json.
fuente
Si estas corriendo
windows 7 docker Registry
**Docker Quick Start terminal**
ejecución (este terminal permite la conexión) Hasta que haya enviado imágenes, eso mantendrá vivo el token.docker login
Asegúrate de etiquetar la imagen con el nombre de usuario.
docker build -f Dockerfile -t 'username'/imagename
empujar imagen
docker image push username/imagename
Nota : nombre de la imagen todo en minúsculas
fuente
Tuve un problema similar.
Descubrí que incluso si inicio sesión correctamente con el
docker login
comando, cualquier extracción falló. Traté de limpiar el~/.docker/config.json
pero nada mejoró.Mirando en el archivo de configuración, he visto que las credenciales no se guardaron allí sino en un archivo
"credsStore": "secretservice"
. En Linux, esta es la herramientaseahorse
oPasswords and Keys
. Revisé allí y limpié todos los inicios de sesión de Docker Hub. Después de esto, un nuevo inicio de sesión de Docker funcionó como se esperaba.fuente