În mediile enterprise securizate, guvernamentale sau bancare (rețele izolate de tip Air-Gapped), serverele de producție nu au acces direct la internet sau la Docker Hub pentru a executa docker pull. Comenzile docker save și docker load permit împachetarea uneia sau mai multor imagini Docker complete (cu toate straturile, etichetele, hash-urile SHA-256 și configurațiile originale) într-un fișier arhivat transferabil pe un stick USB sau printr-un bastion SSH.
Exportul și restaurarea unei imagini cu straturi complete
# PE MAȘINA CONECTATĂ LA INTERNET:
# 1. Descărcăm imaginea dorită:
docker pull postgres:16-alpine
# 2. Salvăm imaginea completă într-un fișier tar:
docker save -o postgres-16-alpine.tar postgres:16-alpine
# Puteți salva chiar mai multe imagini într-o singură arhivă comună:
docker save -o stack-complet.tar frontend:v1 backend:v1 redis:alpine
# 3. Transferăm arhiva pe serverul izolat prin SCP/SFTP:
scp postgres-16-alpine.tar root@server-izolat:/tmp/
# PE SERVERUL IZOLAT (OFFLINE):
# 4. Încărcăm imaginea în Docker Engine-ul local:
docker load -i /tmp/postgres-16-alpine.tar
# Ieșire:
# Loaded image: postgres:16-alpine
# 5. Imaginea este gata de utilizare instant:
docker run -d --name db-prod postgres:16-alpine
Optimizare: Pentru arhive mari, combinați comanda cu compresie
gzip pentru a reduce timpul de transfer prin rețea: docker save my-app:latest | gzip > my-app.tar.gz și restaurați cu: docker load < my-app.tar.gz.