¿Cómo instalar la misma versión de una image de acoplador?

En la máquina AI tiene instalada la image Docker FOO / BAR. ¿Cómo consulto la versión de esa image y cómo instalo la misma versión en la máquina B?

Tenga en count que en la máquina BI no es necesaria la última versión disponible de FOO / BAR, sino la misma versión que la máquina A. No deseo mantener las modificaciones locales en la image realizada en la máquina A.

Docker usa una label o resumen para distinguir entre las diferentes versiones de una image. Al especificar una label o un resumen, todos los commands Docker asumen que desea utilizar la label pnetworkingeterminada latest . Pero siempre puedes ser más específico.

Asumiendo que la image proviene de un logging FOO y se llama BAR , hay dos forms de cómo puede extraer la misma versión de la image: ya sea por label o por resumen. Solo puede usar la label si sabe que es única y no se reutiliza. Este es a menudo el caso cuando se usan numbers de compilation o hash de Git como tags, pero si quiere estar absolutamente seguro, use el resumen.

En la máquina A, ejecuta las docker images --digests . Busque FOO/BAR y su resumen (comenzando con sha: .

En la máquina B, ejecute el siguiente command y reemplace {digest} con el resumen de la máquina A:

 docker pull FOO/BAR@{digest} 

Este es un ejemplo de cómo podría verse:

 docker pull FOO/BAR@sha256:e4957dfd892f656ae672dfa03eb7a73f1c47bd24fc95f2231fc5ac91a76092a0 

Esto downloadá la misma versión que está disponible en la máquina A a la máquina B. Dado que proviene del logging, es una copy nueva sin modificaciones.

Usa una label!

la image docker admite la label, que generalmente se usa como número de versión. Al build una image, puede especificar una label:

 docker build -t myimage:v0.1 . 

Entonces, usar la misma image es fácil:

 docker run -d myimage:v0.1 entrypoint.sh 

Si no especifica una label, y todo funciona bien. Porque Docker usa la label pnetworkingeterminada latest , lo que puede ser molesto al actualizar y mantener su synchronization.

latest image puede cambiar todo el time (generalmente con autoconstrucción de CI / CD), por lo que el contenedor fácil puede usar diferentes imágenes. Si no hay lo que esperaba, ¡ use siempre una label!