Sulla macchina AI sono installati l'image FOO / BAR dell'adattatore. Come faccio a interrogare la versione di quell'image e come faccio a installare la stessa versione per la macchina B?
Si prega di notare che sulla macchina BI non è necessaria la versione più recente disponibile di FOO / BAR, ma la stessa versione della macchina A. Non voglio mantenere le modifiche locali all'image fatta sulla macchina A.
Docker utilizza un tag o digest per distinguere tra diverse versioni di un'image. Quando si specifica né un tag o un digest, tutti i comandi Docker presuppongono che si desidera utilizzare la variabile predefinita latest
. Ma puoi sempre essere più specifico.
Supponendo che l'image proviene da un FOO
Registro di sistema e si chiama BAR
, ci sono due modi in cui è ansible estrarre la stessa versione dell'image: per tag o per digest. Puoi utilizzare solo il tag se sai che è univoco e non viene riutilizzato. Questo è spesso il caso quando si utilizzano i numbers di build o gli hash di Git come tag, ma se si desidera essere assolutamente sicuri, utilizzare il digest.
Nella macchina A, eseguire le docker images --digests
. Cercare FOO/BAR
e il suo digest (partendo da sha:
.
Nella macchina B, eseguire il seguente command e sostituire {digest}
con il digest dalla macchina A:
docker pull FOO/[email protected]{digest}
Questo è un esempio di come potrebbe apparire:
docker pull FOO/[email protected]:e4957dfd892f656ae672dfa03eb7a73f1c47bd24fc95f2231fc5ac91a76092a0
Questo scaricherà la stessa versione disponibile sulla macchina A alla macchina B. Dal momento che viene dal registro, è una copia fresca senza modifiche.
Utilizza un tag!
l'image del docker support il tag, che viene di solito utilizzato come numero di versione. Quando si crea un'image, è ansible specificare un tag:
docker build -t myimage:v0.1 .
Quindi utilizzare la stessa image è facile:
docker run -d myimage:v0.1 entrypoint.sh
Se non specifichi un tag, e tutto funziona bene. Poiché il docker utilizza ultimamente il tag predefinito, che può essere fastidioso quando aggiorna e li tiene sincronizzati.
latest
image può cambiare tutto il tempo (di solito con l'auto-build CI / CD), quindi il contenitore facile può utilizzare immagini diverse. Se non c'è quello che ti aspettavi, usa sempre un tag!