Me gustaría sacar las imágenes de centos, tomcat, ... usando su código sha256, como en
docker pull myimage@sha256:0ecb2ad60
pero no puedo encontrar el código sha256 para usar en ninguna parte.
Revisé el repositorio de dockerhub en busca de algún indicio del código sha256, pero no pude encontrar ninguno. Descargué las imágenes por su etiqueta
docker pull tomcat:7-jre8
y verifiqué la imagen con docker inspect
para ver si hay un código sha256 en los metadatos, pero no hay ninguno (agregar el código sha256 de la imagen probablemente cambiaría el código sha256).
¿Tengo que calcular el código sha256 de una imagen yo mismo y usarlo?
docker
docker-registry
cristiano
fuente
fuente
Respuestas:
Última respuesta
Edición sugerida por OhJeez en los comentarios.
Respuesta original
Creo que también puede obtener esto usando
Funciona solo en Docker 1.9 y si la imagen fue originalmente extraída por el resumen. Los detalles se encuentran en el rastreador de problemas de Docker.
fuente
docker inspect --format='{{index .RepoDigests 0}}' $IMAGE
sin llaves (devuelve el primer índice de la matriz)Puedes conseguirlo
docker images --digests
fuente
docker images --format '{{.Digest}}'
. Esto es útil en unaforeach
declaración para trabajar un poco con los resúmenes.Acabo de verlo:
Cuando saco una imagen, el código sha256 se muestra en la parte inferior de la salida (Digest: sha ....):
Este código sha
se puede utilizar para extraer la imagen posteriormente con
De esta manera, puede estar seguro de que la imagen no se modifica y se puede utilizar de forma segura para la producción.
fuente
La forma más sencilla y concisa es:
docker images --no-trunc --quiet $IMAGE
Esto devuelve solo la
sha256:...
cadena y nada más.p.ej:
Editar:
NOTA: esto solo funciona para imágenes que son locales.
docker pull $IMAGE
Primero puede , si es necesario.fuente
Además de las respuestas existentes, puede utilizar la
--digests
opción mientras lo hacedocker images
para obtener una lista de resúmenes de todas las imágenes que tiene.Puede agregar un grep para profundizar más
fuente
Este debería haber sido el campo Id, que podría ver en la antigua API de Docker Hub en desuso
PERO: así no es como funciona ahora con la nueva distribución de Docker .
Consulte el problema 628: "Obtener ID de imagen con nombre de etiqueta".
La respuesta actual (mediados de 2015) es:
fuente
Encontré que los métodos anteriores no funcionan en algunos casos. O bien:
El siguiente método es delicado, pero funciona para extraer el 'nombre' completo y el hash específicos para un contenedor empujado específico.
Aquí está el escenario: una imagen se carga por separado en 2 proyectos diferentes en el mismo repositorio, por lo que consultar RepoDigests devuelve 2 resultados.
Quiero usar el resultado alfa, pero no puedo predecir qué índice será. Entonces, necesito manipular la salida de texto para eliminar los corchetes y obtener cada entrada en una línea separada. A partir de ahí, puedo grep fácilmente el resultado.
fuente
Como lo mencionó @zelphir, usar resúmenes no es una buena manera, ya que no existe para una imagen solo local. Supongo que la ID de la imagen es la más precisa y consistente en todas las etiquetas / tirar / empujar, etc.
Hace el truco.
fuente
Puede encontrarlo al momento de sacar la imagen del repositorio respectivo. El comando de abajo menciona Digest: sha256 en el momento de extraer la imagen de la ventana acoplable.
09:33 AM ## ~ ::> docker --version Docker versión 19.03.4, compilación 9013bf5
Resumen: sha256: 6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
Una vez descargada la imagen, podemos hacer lo siguiente
"ubuntu @ sha256: 6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d"
fuente
Simplemente emita de
docker pull tomcat:7-jre8
nuevo y obtendrá lo que desea.fuente