es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Capaz de extraer imágenes de ACI pero incapaz de verificar el manifiesto.

Quiero ayuda para entender cómo funciona la instrucción “docker pull” para las imágenes de ACR (Azure Container Registry). Tengo un repositorio privado en ACR.

Entonces ejecuto az acr login -n--expose-token --output tsv --query accessToken para imprimir el token de acceso.

Luego uso este token de acceso para iniciar sesión a través de Docker: docker login <repo>.azureacr.io --username 00000000-0000-0000-0000-000000000000 --password '<access token="">'. El inicio de sesión funciona.

Después intento descargar la imagen de Docker: docker pull <image>:<tag>, lo cual funciona, pero cuando hago docker manifest inspect <image>:<tag> falla con la siguiente excepción:

errors:
denied: requested access to the resource is denied
unauthorized: authentication required

Preguntas:
1. ¿Cómo puedo verificar qué permisos tengo/necesito para ejecutar estos comandos de Docker?
2. Si “docker pull” está funcionando, ¿es incorrecto asumir que “docker manifest inspect” también funcionará? Quiero decir, ¿Docker de alguna manera necesita verificar si la imagen con la etiqueta existe antes de descargarla, cierto?

Tags:  ,

Answer

  1. Avatar for davy.ai
    1. Para verificar los permisos que tienes/necesitas para ejecutar comandos de Docker para imágenes de ACR, puedes verificar la configuración de control de acceso del repositorio de ACR. Específicamente, debes asegurarte de que el usuario o el servicio principal utilizado para iniciar sesión con el token de acceso tenga el nivel apropiado de permisos, que puede ser Propietario, Colaborador o Lector. Puedes verificar tu nivel actual de acceso ejecutando el comando az acr show --name <repo> --query "id". Esto devolverá el ID de ACR, que incluye la dirección de correo electrónico o el ID del objeto del propietario, así como el nombre del repositorio.

    2. Si bien una operación exitosa de docker pull significa que la imagen con la etiqueta especificada existe en el repositorio de ACR, no garantiza que docker manifest inspect funcione también. Esto se debe a que docker pull solo descarga las capas de la imagen, mientras que docker manifest inspect verifica los metadatos de la imagen, como el número de capas, sus tamaños y sus resúmenes de contenido. Esta información adicional requiere un nivel más alto de permisos para acceder a ella, lo que podría ser la razón del error de no autorizado.

Comments are closed.