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

Come utilizzare Docker Salva immagine ed esporta per la condivisione

Se non conosci Docker, potresti non aver ancora scoperto come condividere contenitori e immagini con altri sviluppatori o macchine. Ma è possibile condividere i container? Sì! Consenti alla docker save comando immagine e docker export il comando image fa il trucco!

In questo tutorial imparerai come salvare ed esportare contenitori e immagini per la condivisione eseguendo i comandi Docker.

Pronto? Iniziamo!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, assicurati di avere quanto segue:

  • In questo tutorial viene utilizzato Docker Desktop o Engine installato come versione 20.10.7.
  • In questo tutorial viene utilizzato qualsiasi sistema operativo compatibile Docker, Ubuntu.

Creazione di un'applicazione Docker di base

Prima di passare all'esportazione o al salvataggio di contenitori e immagini Docker, devi prima creare un'applicazione che utilizzerai per la condivisione. Creerai una soluzione aritmetica di base come un'applicazione Docker di esempio tramite un ambiente a riga di comando.

1. Crea un file per il tuo progetto chiamato Dockerfile e incolla il codice qui sotto nel Dockerfile appena creato .

Il codice seguente esegue un'operazione aritmetica di base che restituisce un valore di 10.

# busybox provides Unix utilities in a single executable file, 
# which enables you to do some arithmetic.
FROM busybox
# Performs a basic arithmetic operation that results in a value of 10.
CMD echo $(((20*5)/10))

2. Quindi, apri il tuo terminale ed esegui docker build comando seguente per compilare l'applicazione denominata (arithmetic ) nel luogo di lavoro (. ).

docker build --tag arithmetic .

Se stai usando Linux, potresti dover anteporre il comando sudo per evitare di ricevere un errore di "autorizzazione negata", come questo:sudo docker build --tag arithmetic . Aggiunta di sudo command eleva il comando come amministratore.

3. Esegui il comando seguente per eseguire l'applicazione Docker che hai creato (arithmetic ). L'esecuzione dell'app Docker crea automaticamente anche un contenitore per la tua applicazione.

docker run arithmetic

Esportazione di container Docker

Ora che hai un'applicazione Docker di base, è tempo di spiegare come esportare un container Docker. La creazione di un'applicazione di grandi dimensioni richiede molto tempo e può essere un ostacolo se desideri semplicemente condividere il contenitore con il tuo team. Quindi c'è un modo più rapido per condividere il contenitore? Sì!

Invece di creare l'applicazione direttamente da un Dockerfile, esporta il contenitore Docker.

1. Esegui la docker load comando seguente per elencare tutto (ls --all ) containers disponibile sulla tua macchina. Nota il CONTAINER ID del contenitore che desideri condividere poiché ti servirà per esportare il contenitore nel passaggio successivo.

Tieni presente che puoi esportare solo contenitori, non immagini.

docker container ls --all

2. Quindi, esegui il comando seguente per export il contenitore Docker di tua scelta (container-id ). Sostituisci container-id con l'ID contenitore annotato nel passaggio uno.

Durante l'esportazione, salvi il filesystem del contenitore in un .tar archivio (arithmetic.tar ).

docker export container-id > arithmetic.tar

3. Infine, controlla la cartella del tuo progetto nel tuo file manager e vedrai che un nuovo .tar archivio è stato creato (arithmetic.tar ). Poiché hai esportato il contenitore in un .tar archivio, ora puoi condividerlo con chiunque.

Importazione di contenitori Docker

Invece di esportare, forse devi importare un container Docker che un compagno di squadra ha condiviso con te. In tal caso, l'docker import il comando è ciò di cui hai bisogno. L'docker import Il comando prende il filesystem esportato e lo converte in un filesystem immagine che puoi eseguire sulla tua macchina.

1. Esegui la seguente docker load comando per import un contenitore (arithmetic.tar ) e convertirlo in un'immagine. Durante l'importazione, devi allegare un tag (latest ) e nominare l'immagine (put_any_name_here ), come mostrato di seguito.

docker import arithmetic.tar put_any_name_here:latest

2. Quindi, esegui il comando seguente per elencare tutte le immagini Docker esistenti, in modo da poter verificare se esiste una nuova immagine.

docker images

Di seguito, puoi vedere che esiste una nuova immagine Docker.

3. Ora esegui docker run comando seguente per aprire la shell (sh ) per l'immagine importata. Il container funziona in modo interattivo ed è collegato al tuo terminale (-i e -t bandiere).

 docker run -i -t put_any_name_here:latest sh

Puoi dire dal prompt qui sotto (/ #), ora sei nella shell dell'immagine importata.

4. Infine, esegui il comando seguente per vedere se l'immagine funziona come previsto.

echo $(((20*5)/10))

Se l'immagine funziona, otterrai un output di 10 , come mostrato di seguito.

Se provi a eseguire direttamente l'immagine, riceverai un errore, come mostrato di seguito, poiché l'immagine importata è un'immagine del filesystem.

Salvataggio delle immagini tramite Docker Salva immagine

Forse vuoi salvare un'immagine Docker piuttosto che un contenitore. In tal caso, vai con il docker save comando immagine invece. A differenza dell'docker export comando, il docker save Il comando consente di salvare direttamente una o più immagini in un archivio tar e condividerlo con chiunque.

Tieni presente che puoi salvare e caricare solo immagini Docker, non contenitori.

  1. Esegui il comando seguente per salvare un'immagine Docker (aritmetica) nel tuo .tar preferito archivio (arm_image.tar ). Ora puoi condividere il .tar archiviare con altri sviluppatori in modo che possano caricare l'immagine.
docker save arithmetic > arm_image.tar

2. Ora esegui il comando seguente per creare una directory con il nome che preferisci (mkdir arm ). Ma per questa demo, la directory si chiama arm . Il comando estrae quindi l'immagine da .tar archivio (-xf arm_image.tar ) nella nuova directory (arm ).

Estrazione del contenuto del .tar archivio ti consente di confermare se l'immagine è stata salvata nel .tar l'archivio esiste.

mkdir arm && tar -xf arm_image.tar -C arm

3. Infine, esegui l'tree comando seguente per visualizzare l'albero delle directory dell'immagine estratta nel ~/arm directory. tree ~/arm

Di seguito puoi vedere i file e le sottodirectory all'interno della directory in cui hai estratto l'immagine Docker.

Se prevedi di condividere la tua immagine Docker sull'hub Docker, l'opzione migliore è eseguire il docker save comando. Come mai? Con il docker save command , stai essenzialmente salvando l'immagine esattamente come dovrebbe funzionare. Inoltre, puoi pubblicare immagini solo sull'hub Docker, quindi sicuramente il docker export command non è una buona opzione.

Caricamento delle immagini Docker

Supponendo che tu abbia già salvato un'immagine a scopo di backup o condivisione, come la caricheresti su una macchina? Nessun problema, il docker load il comando può aiutare. Il docker load Il comando ti consente di caricare un'immagine o un repository sulla tua macchina, ripristinando sia le immagini che i tag.

Per vedere meglio come viene caricato il docker load il comando funziona, elimina tutte le immagini Docker che hai creato in precedenza.

1. Esegui il comando seguente per elencare tutte le images Docker nella tua macchina

docker images

Di seguito, puoi vedere che ci sono due immagini disponibili. Annota l'ID IMMAGINE di ciascuna delle immagini poiché eliminerai quelle immagini nel passaggio successivo.

2. Esegui il comando seguente per eliminare (rm ) Immagini Docker in base agli ID immagine specificati. Sostituisci imageID1 e imageID2 con gli ID immagine annotati nel passaggio uno.

docker image rm imageID1 imageID2

3. Ora, esegui il docker load comando seguente per caricare un'immagine da un .tar archivio (arm_image.tar ).

docker load < arm_image.tar

4. Esegui nuovamente le docker images comando come hai fatto nel passaggio uno per elencare tutte le immagini disponibili nella tua macchina. docker images

docker images

Di seguito, puoi vedere l'immagine appena caricata.

5. Infine, eseguire il comando seguente per eseguire e verificare se l'immagine funziona.

docker run arithmetic

Si noti che il comando ha restituito un valore di 10, che indica che l'immagine caricata funziona.

Conclusione

Durante questo tutorial, hai imparato come esportare e importare contenitori, oltre a caricare e salvare immagini. Ora dovresti avere una conoscenza di base della conversione delle immagini e dei contenitori di salvataggio di Docker in un formato condivisibile, ad esempio un file TAR.

Ad un certo punto, dovrai condividere l'immagine o il contenitore Docker. Ora come pensi di incorporare questa nuova conoscenza quando lavori con contenitori e immagini Docker, magari un sistema di backup?


Docker
  1. Come esportare e importare contenitori Docker

  2. Come utilizzare un Dockerfile per creare un'immagine Docker

  3. Come e perché utilizzare un host Docker remoto

  4. Come creare un'immagine Docker da un contenitore e un file Docker

  5. Come eseguire il backup e il ripristino dei container Docker

Che cos'è Docker Compose e come lo usi?

Come utilizzare Docker Cp per copiare file tra host e contenitori

Come creare un'immagine Docker da un contenitore in esecuzione

Come distribuire e gestire un contenitore Docker MongoDB

Come utilizzare Docker Commit per modificare le immagini del contenitore

Come installare e utilizzare Docker su Ubuntu 20.04