docker - library - denegado: acceso denegado al recurso denegado: acoplador
download docker image (30)
Estoy siguiendo este enlace para crear mi primera imagen acoplable y salió con éxito y ahora estoy tratando de insertar esta imagen en mi repositorio acoplable desde este link . Pero cada vez que intento insertar esta imagen en el repositorio, recibo este tipo de error.
denied: requested access to the resource is denied
¿Alguien podría darme alguna pista sobre este problema? Cualquier ayuda sería apreciada.
Nota: He iniciado sesión con éxito en la ventana acoplable
Después de iniciar sesión en la ventana acoplable, debe nombrar su imagen con el prefijo.
por ejemplo, si su nombre de usuario en docker-hub es
Shah
, la imagen debería ser:
Shah/firstimage
Docker también tiene un límite en la cantidad de repositorios privados que puede tener. Si está creando un repositorio privado presionando desde su máquina local, creará el repositorio pero no se puede empujar ni extraer nada más, y obtendrá el error "acceso denegado al recurso denegado".
En caso de que alguien más se encuentre con esto, la causa, en mi caso, fue que estaba usando el enfoque de
docker compose
(en desuso) para enviar imágenes.
Cambiar al
docker push
esperado de la
docker push
resolvió el problema para mí.
En mi caso, estaba presionando a una organización donde estoy en un equipo que tiene permisos de administrador para el repositorio.
entonces mi comando push era:
docker push org-name/image-name
Podría presionar con éxito al nombre de usuario / nombre de imagen pero no a la organización. Verifiqué tres veces los permisos. Nada funcionó.
La solución fue eliminar el repositorio de Docker Hub y volver a presionar nuevamente usando:
docker push org-name/image-name
Por lo que vale, creo que el repositorio fue originalmente promovido antes de que la cuenta se convirtiera en una organización.
En mi caso, sudo -E falló con este mensaje.
La resolución fue proporcionar acceso do docker sin sudo (crear un docker grupal, agregar el usuario (Jenkins) al grupo, configurar el grupo en /var/run/docker.sock).
Ahora
docker push
no necesita sudo, y funciona.
Entonces, en caso de que sea útil para cualquiera ...
Tuve este mismo problema y aquí está mi problema y el FIX.
sudo docker run -d
--restart=always /
--name registry /
-v /srv/registry/certs:/certs /
-v /srv/registry/storage:/var/lib/registry /
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 /
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/galaxy.cert /
-e REGISTRY_HTTP_TLS_KEY=/certs/galaxy.key /
-p 443:443 /
registry:2
Luego estaba tratando de enviar una imagen a la galaxia desde una computadora portátil en la red, así que hice esto:
docker login galaxy
Esto me daría un error que diría:
Login did not succeed, error: Error response from daemon:
Get https://galaxy/v2/: x509: certificate signed by unknown authority
Curiosamente, la solución a este problema fue hacer un inicio de sesión como este:
docker login galaxy:443
Eso resultó en un inicio de sesión exitoso.
Entonces traté de llevar la imagen de mi computadora portátil a ''galaxy''.
Ya había creado una etiqueta para mi imagen que se veía así:
galaxy/myImage:0.0.1
Así que traté de presionarlo haciendo esto:
docker push galaxy/myImage:0.0.1
A lo que obtuve la respuesta:
The push refers to repository [docker.io/galaxy/myImage]
7ab460574f86: Preparing
1aecaf56754d: Preparing
1df1b5f06ca4: Preparing
denied: requested access to the resource is denied
Por extraño que parezca, descubrí que la solución para esto era etiquetar primero la imagen de la siguiente manera:
docker tag myImage:0.0.1 galaxy:443/myImage:0.0.1
... y luego haz el empuje así:
docker push galaxy:443/myImage:0.0.1
Entonces, por alguna razón, tuve que incluir el puerto en la etiqueta como parte requerida del nombre del repositorio.
Espero que esto ayude a otros.
Esta respuesta es tanto para mi futuro como para cualquier otra persona. Me encontré con este problema exacto cuando inicié sesión correctamente, pero intento ingresar a un repositorio privado cuando mi número de repositorios privados es mayor o igual al límite permitido por mi plan.
No estoy exactamente seguro de cómo pude crear demasiados repositorios privados, pero si mi plan incluye 5 repositorios privados, y de alguna manera tengo 6, entonces este es el error que recibiré:
denied: requested access to the resource is denied
En mi caso, es posible que termine con demasiados repositorios privados porque tengo mi visibilidad predeterminada establecida en privado:
Aquí es donde determina cuántos repositorios privados puede tener:
Una vez que hice público el problemático repositorio, el problema se hizo evidente:
Gracias a la answer proporcionada por Dean Wu y este comentario de ses , antes de presionar, recuerde iniciar sesión desde la línea de comandos a su cuenta de Docker Hub
docker login
Según los docs :
You need to include the namespace for Docker Hub to associate it with your account.
The namespace is the same as your Docker Hub account name.
You need to rename the image to YOUR_DOCKERHUB_NAME/docker-whale.
Entonces, esto significa que debe etiquetar su imagen antes de presionar:
docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage
y luego deberías poder empujarlo.
docker push YOUR_DOCKERHUB_NAME/firstimage
Intente cerrar la sesión de la aplicación "Docker para Windows" y cierre la sesión del sitio https://hub.docker.com/ y luego realice "docker login" y "docker push". Me ayudó mucho.
La forma en que Docker maneja las ID de usuario y los repositorios puede ser un poco confusa.
Supongamos que crea una cuenta de usuario xyz en Docker Hub.
La nueva cuenta establece automáticamente un espacio de nombres
xyz
.
Luego creas un repositorio llamado myrepo.
El nombre del repositorio será en realidad
xyz/myrepo
.
Para empujar una imagen debes hacer:
docker push docker.io/xyz/myrepo
Puede agregar ": último" o una etiqueta diferente si es necesario.
Si obtiene el mensaje de error
requested access to the resource is denied
el
requested access to the resource is denied
:
- Vaya a https://hub.docker.com/ e https://hub.docker.com/ sesión como xyz.
- Haga clic en su repositorio xyz / myrepo.
- Haz clic en Colaboradores.
- Agrega xyz como colaborador.
Mi problema era simplemente usar caracteres no válidos (un extra /) en el nombre de mi imagen:
myusername/something/image
es un nombre de imagen no válido Prueba myusername / something-image. Espero que esto ayude a alguien.
Mi respuesta está relacionada con problemas similares de Azure DevOps que tuve con la siguiente canalización común (es más específica pero podría ayudar a alguien a ahorrar tiempo):
- Obtenga fuentes de github
- Construir imagen acoplable
- Empuje la imagen de Docker a Dockerhub
El error que recibí en push fue
denied: requested access to the resource is denied
me envió aquí.
Tenga cuidado con la variable
$(Build.Repository.Name)
incluida en su nombre de imagen.
Por defecto, es el nombre del repositorio de github, pero para que funcione, debe ser
dockerhub_account_username/your_dockerhub_repository_name
.
Reemplace
$(Build.Repository.Name)
con
dockerhub_account_username/your_dockerhub_repository_name
en su campo de nombre de imagen para los pasos de compilación y inserción.
La api de dockerhub necesita esto para saber dónde empujar la imagen.
No estoy seguro de lo que sucedió con Docker Hub, pero ninguna de las soluciones publicadas funcionó para mí. Aquí está la solución que terminó funcionando para mí a partir de enero de 2018:
- Vaya a hub.docker.com y cambie su repositorio a privado
- En tu caparazón haz:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE verse_gapminder_gsl latest 023ab91c6291 3 minutes ago 1.975 GB verse_gapminder latest bb38976d03cf 13 minutes ago 1.955 GB rocker/verse latest 0168d115f220 3 days ago 1.954 GB
docker tag bb38976d03cf dockhubusername/verse_gapminder:mytag
docker login docker.io
docker push dockhubusername/verse_gapminder:mytag
- Regrese al Docker Hub y cambie el repositorio a público. Eso funcionó para mí.
Otra razón (bastante inteligente) para esto: no tiene repositorios privados con su plan.
Para aquellos que intentan llevar la imagen a su propio Administrador de repositorio de Nexus, haga lo siguiente:
1) Inicie sesión en su Nexus Repository Manager (el puerto 8443 está asociado con un repositorio de host Docker específico)
sudo docker login xxx.mydomain.com:8443
2) Etiquete la imagen CON SU SERVIDOR NEXUS IP / DNS
sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0
3) Empuje la imagen
sudo docker push xxx.mydomain.com:8443/myimage:1.0.0
Si aún falla después del
docker login
, asegúrese de que el repositorio al que intenta
docker login
se haya creado en primer lugar.
Si enfrenta este problema mientras usa Azure Container Registry, puede resolverlo iniciando sesión primero en su registro.
docker login yourregistry.azurecr.io
Y luego etiquete su imagen para que coincida con el nombre de host de su registro.
docker image tag yourimagename:[version] yourregistry.azurecr.io/yourimagename:[version]
Y luego finalmente empujarlo.
docker push yourregistry.azurecr.io/yourimagename:[version]
Solución de trabajo simple:
Vaya aquí
https://hub.docker.com/
para crear un repositorio PRIVADO con nombre, por ejemplo
johnsmith/private-repository
este es el
NAME/REPOSITORY
que usará para su imagen cuando construya la imagen.
-
Primero,
docker login
-
En segundo lugar, utilizo "
docker build -t johnsmith/private-repository:01 .
" Para crear la imagen, y utilizo "docker images
" para confirmar la imagen creada, como en este cuadro amarillo a continuación: (lo siento, no puedo pegar la tabla formato pero solo la cadena de texto)
johnsmith / private-repository (REPOSITORY) 01 (TAD) c5f4a2861d6e (ID DE IMAGEN) hace 2 días (CREADO) 305MB (TAMAÑO)
-
En tercer lugar, utilizo
docker push johnsmith/private-repository:01
¡Hecho!
También es importante tener en cuenta que cuando etiqueta su imagen, la etiqueta usando el Espacio de nombres y luego su repositorio / mydevrepo . Esto me confundió al seguir los documentos de Docker. Después de eso usé:
docker login
Y luego empujé mi imagen usando el ''nombre etiquetado'' .
docker push {namespace}/mydevrepo
También estaba con este problema, probé las soluciones aquí presentes, pero en vano, inicié sesión correctamente, al menos de acuerdo con la salida del
docker login
de
docker login
de
docker login
pero aún así no pude presionar la imagen.
Lo que finalmente funcionó fue simplemente hacer:
docker logout
Y luego, el
docker login
nuevamente, fue tan trivial.
No estoy seguro de lo que sucedió, pero forzar el reinicio de sesión funcionó.
También estoy teniendo este problema. Resulta que estoy usando el nivel gratuito e intento insertar más de 1 imagen en el repositorio privado. Hacer 1 imagen privada y el resto público funcionó para mí.
Tuve el mismo problema al tomar el curso para principiantes de Docker.
Resolví el problema haciendo un
docker login
la ventana
docker login
antes de la llamada push de la ventana acoplable.
Tuve el mismo problema hoy. Lo único que funcionó para mí fue iniciar sesión explícitamente en "docker.io":
docker login docker.io
Intenté varios otros nombres, y el inicio de sesión parece funcionar, pero luego daría como resultado un error de "acceso denegado al recurso".
Tuve el mismo problema, pero la respuesta aceptada dada aquí no funcionó para mí. Intenté algunos pasos y pude moverme para finalmente empujarlo. Espero que esto ayude a alguien.
Aquí están los pasos trabajados para mí:
1) Inicie sesión en la ventana acoplable.
docker login -u sirimalla
2) Etiqueta la construcción de tu imagen
mi nombre de imagen aquí es:
mylocalimage
y por defecto tiene etiqueta:
último
y mi nombre de usuario es:
sirimalla
como registrado en la nube de docker, y creé un repositorio público llamado:
dockerhub
así que mi repositorio personal se convierte ahora en:
sirimalla / dockerhub
y quiero insertar mi imagen con la etiqueta:
myfirstimagepush
Etiqueté como a continuación:
docker tag mylocalimage:latest sirimalla/dockerhub:myfirstimagepush
3) Empujé la imagen a mi repositorio docker personal como se muestra a continuación
docker push sirimalla/dockerhub:myfirstimagepush
Y se aplicó con éxito a mi repositorio personal de Docker.
Utilice los siguientes comandos:
$ docker login
<enter user name and password for Docker Hub Repository>
$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image
$ docker push {docker-hub-username}/{default-repo-folder-name}:first-image
Por ejemplo, tengo un repositorio público como manjeet86 / docker-repo, por lo que los comandos serían:
$ docker tag first-image manjeet86/docker-repo:first-image
$ docker push manjeet86/docker-repo:first-image
Solo mira
:
lugar de
/
ese fue el truco.
Esto funciona para mi.
No sé si te permite etiquetar con
/
también en lugar de
:
pero eso puede ser para algún otro propósito.
https://docs.docker.com/engine/reference/commandline/tag/#examples
cambie el nombre de su imagen a nombre de usuario / etiqueta de nombre de imagen docker your-current-image / current-image dockerhub-username / some-name: your-tag (ejemplo: último)
el inicio de sesión de Docker desde el símbolo del sistema no funcionó. Seguía recibiendo "acceso denegado al recurso" cuando intentaba presionar.
Después de iniciar sesión en la aplicación Docker para Windows, Docker Push funcionó bien. Espero que esto ayude a alguien.
todas las respuestas anteriores fueron correctas, solo quiero agregar una información que vi que no se mencionó;
Si el proyecto es un proyecto privado para empujar correctamente la imagen, debe configurarse un token de acceso personal o desplegar un token con la clave read_registry habilitada.
fuente: https://gitlab.com/help/user/project/container_registry#using-with-private-projects
Espero que esto sea útil (también si la pregunta está publicada hasta ahora)
SO: Ubuntu16.04
Motivo: eliminé el archivo de configuración del cliente ( ~ / .docker / config.json )
Solución:
-
Reinicia la ventana acoplable.
reinicio del acoplador de servicio . -
Necesita ingresar información de inicio de sesión, luego genera el archivo de configuración automáticamente.
inicio de sesión de docker --username = yourdockerhubername [email protected]