Se hai creato un'immagine Docker sulla tua macchina di sviluppo e desideri distribuirla su un server, puoi utilizzare un registro Docker, ma Docker ha anche strumenti per salvare le immagini su file e caricarle su un server diverso.
Non hai bisogno di un registro dei container
In genere, per trasferire una build di un container (denominato immagine) su un server remoto, si utilizza un registro container Docker. Questo è di gran lunga il metodo migliore:è un unico punto di autorità, che semplifica la distribuzione degli aggiornamenti su più server. Ciò non richiede nemmeno di rendere pubblico il contenitore; ci sono molti ottimi registri di container privati, come GCR di Google e ECS di AWS. Docker Hub supporta anche repository privati. Se sei semplicemente preoccupato per la privacy, passa a un registro privato e continua a utilizzare docker push
e docker pull
.
Tuttavia, per coloro che desiderano farlo alla vecchia maniera, Docker CLI contiene alcuni strumenti per salvare le immagini su file e caricarle su un server remoto.
Per salvare un'immagine, puoi utilizzare docker save
, specificando un file di output, quindi specificando un nome immagine e un tag:
docker save -o ./savedimage imagename:tag
Se non specifichi un tag, Docker impacchetta tutti i tag.
Questo serializzerà e salverà una copia dell'immagine nel file di output. L'immagine viene salvata come file tar. Se desideri salvarlo come tar.gz
, puoi omettere -o
contrassegnare e reindirizzare l'output a gzip
:
docker save imagename:tag | gzip > savedimage.tar.gz
Puoi quindi prendere questo file e scp
o copia FTP sul server di destinazione. Una volta che è lì, puoi utilizzare docker load
per importarlo di nuovo:
docker load -i savedimage
Ciò renderà l'immagine disponibile sul sistema di destinazione come se avessi eseguito docker build . -t imagename
. Puoi usarlo proprio come un'immagine creata localmente con docker container run
:
docker container run imagename