GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come condividere le immagini Docker con altri

Hai creato un'immagine Docker che devi condividere con un collega? Ecco come distribuire un'immagine senza che il destinatario debba eseguire docker build stessi.

Condivisione di un'immagine predefinita invece di un Dockerfile ti consente di essere sicuro che il tuo collega stia utilizzando lo stesso identico software. La riesecuzione della build potrebbe comportare un ambiente leggermente diverso. Hai due opzioni per distribuire la tua immagine, a seconda della situazione.

Utilizza un registro Docker

Il modo più semplice per condividere un'immagine Docker è inviarla a un registro Docker. Questa funzionalità è completamente integrata nella Docker CLI. Non è necessario effettuare trasferimenti manuali di file quando si utilizza questo metodo.

Il registro predefinito è Docker Hub. Ciò ti consente di condividere pubblicamente le immagini e ti offre anche un repository privato. Crea un account su Docker Hub, quindi esegui docker login nel tuo terminale Fornisci i dettagli del tuo account per collegare Docker CLI al tuo account.

Quindi crea la tua immagine normalmente, usando docker build . Aggiungi un tag che inizi con il tuo nome utente Docker Hub:

docker build -t my-account/my-image:latest .

Quindi usa il docker push comando per inviare l'immagine contrassegnata su Docker Hub:

docker push my-account/my-image:latest

Ora la tua immagine è archiviata in modo sicuro in Docker Hub. Altri utenti potranno scaricarlo utilizzando il docker pull o docker run comandi. Hai finito di condividere la tua immagine!

Per l'uso nel mondo reale, Docker Hub potrebbe non essere sufficiente. Se fai parte di un team di sviluppo, probabilmente vorrai mantenere le immagini sul tuo server, anziché sul registro Hub pubblico. Puoi invece creare un server di registro self-hosted per ottenere uno spazio di archiviazione privato completamente compatibile con il docker push e docker pull comandi. Ciò ti consente di condividere facilmente le immagini con chiunque possa accedere al tuo registro privato.

Esportazione di immagini

Se l'utilizzo di un registro non è un'opzione, puoi invece esportare manualmente gli archivi di immagini Docker. Questa funzionalità è anche integrata nella Docker CLI. Crea la tua immagine e poi usa il docker save comando per ottenere un tar archivio dei suoi contenuti:

docker save my-image:latest > my-image.tar

Il completamento dell'esportazione potrebbe richiedere alcuni istanti. Docker includerà tutto il necessario per ricreare l'immagine, ovvero tutti i livelli nel tuo Dockerfile , nonché i livelli ereditati dall'immagine di base. L'archivio conterrà anche informazioni sui tag associati all'immagine.

Poiché l'output è un semplice tar file, ora sei libero di distribuirlo in qualsiasi modo tu scelga. Gli archivi potrebbero essere piuttosto grandi, quindi di solito è meglio caricarli su un file server o un provider di archiviazione cloud.

Per utilizzare un'immagine esportata, esegui il docker load comando. Questo accetta un tar archivio prodotto da docker save come flusso di input. Docker caricherà il contenuto dell'archivio e lo aggiungerà al tuo elenco di immagini locali.

docker load < my-image.tar

Ora vedrai l'immagine appena importata nelle tue docker images produzione. Sei pronto per avviare un nuovo contenitore con docker run .

L'esportazione e l'importazione di immagini aggiunge alcuni passaggi aggiuntivi rispetto all'utilizzo di un registro Docker. Dovrai trasferire manualmente il file tra i client. Di conseguenza, questo approccio è meno adatto per un uso frequente, sebbene abbia anche i suoi vantaggi.

Conversione di immagini in un tar l'archivio può essere utile per l'archiviazione a lungo termine. Se stai esaurendo lo spazio sul tuo server di registro, archivia le vecchie immagini e carica i loro tars eseguire il backup dell'archiviazione dei file potrebbe essere un modo conveniente per recuperare una parte della capacità. Sarai comunque in grado di recuperare l'immagine se mai ne avessi bisogno in futuro.

Che ne dici di "esportazione mobile"?

Docker ha un altro comando relativo all'esportazione, docker export . Questo non deve essere confuso con docker save . Mentre save funziona con immagini, export gestisce effettivamente i singoli contenitori .

docker export produrrà un tar archivio del filesystem di un contenitore. Questo può essere utilizzato per ripristinare una replica del contenitore su un'altra macchina. Se ispezioni il contenuto dell'archivio, vedrai che è solo un normale filesystem di root Linux, con directory come /bin , /etc e /usr .

docker export my-container > my-container.tar

docker export è utile se si desidera eseguire lo snapshot di un container per un ripristino successivo. Tuttavia, gli archivi contenitore non vengono importati nel modo che potresti aspettarti. Poiché un container rappresenta un ambiente attivo e in esecuzione, non è possibile "importarne uno" direttamente. Al contrario, l'importazione di un archivio contenitore crea un nuovo immagine.

docker import my-container.tar my-image:latest

In questo esempio, Docker prenderà il filesystem in my-container.tar e costruisci automaticamente una nuova immagine chiamata my-image:latest . Questo avrà lo stesso filesystem ma non la stessa immagine di base o la stessa configurazione Docker del contenitore originale che hai esportato.

RELAZIONATO: Come iniziare con il nuovo Docker Container Registry di Github

Riepilogo

Docker semplifica la condivisione di immagini di applicazioni e ambienti di sviluppo con i tuoi collaboratori. Di solito è meglio inviare le immagini a un repository centralizzato da cui tutti gli altri possono attingere. In alcuni scenari, potrebbe avere più senso esportare un'immagine in un archivio che distribuisci manualmente.

Docker ti consente anche di esportare il filesystem di un contenitore per un successivo ripristino in un'immagine. Fai attenzione quando lo usi in quanto non è una ricostruzione esatta e non tutti i dati del filesystem vengono inclusi. Tutti i volumi montati sul contenitore originale non verranno inclusi nell'archivio del filesystem, quindi dovresti eseguire i passaggi per eseguirne il backup separatamente.


Docker
  1. Come spostare le immagini Docker tra host

  2. Come installare Jenkins con Docker

  3. Come modificare le immagini Docker

  4. Come creare e configurare automaticamente immagini Docker personalizzate con Dockerfile – Parte 3

  5. Come utilizzare le immagini docker locali con Minikube?

Come aggiornare le immagini Docker all'ultima versione

Mantieni gestibili le tue immagini Docker con Docker Image Prune

Come utilizzare Docker Commit per modificare le immagini del contenitore

Come creare un'immagine Docker personalizzata con Dockerfile

Condivisione di immagini Docker su Docker Hub

Come elencare / cercare / estrarre le immagini della finestra mobile su Linux