GNU/Linux >> Linux Esercitazione >  >> Linux

Come gestire i container Docker

Docker è una piattaforma software sviluppata per facilitare il deployment di applicazioni basate sul concetto di container. La piattaforma può essere utilizzata per creare, testare e distribuire applicazioni raccogliendole in unità standardizzate, denominate "container".

I container Docker possono essere visti come ambienti isolati in cui le applicazioni possono essere eseguite senza interferenze da parte di altri processi. Analogamente a quanto accade con le macchine virtuali, a ciascun container vengono allocate specifiche risorse computazionali. A differenza delle macchine virtuali, Docker non richiede alcuna emulazione hardware ma utilizza l'hardware fisico dell'host per ogni container.

Essendo efficiente sotto il profilo delle risorse e in grado di generare prestazioni di sistema migliorate, la containerizzazione può essere vista come l'evoluzione naturale della virtualizzazione. Inoltre, poiché dispongono di tutto ciò che è necessario per la corretta esecuzione delle applicazioni, incluse librerie, strumenti di sistema e codici, i container semplificano l'implementazione di un'applicazione senza doversi preoccupare della configurazione dell'ambiente di runtime.

In questo tutorial imparerai come gestire al meglio i container Docker su Linux, scaricare immagini da Docker Hub, creare un nuovo container e salvarne un'immagine.

Quando la piattaforma Docker non è presente sul tuo sistema, ti consigliamo di seguire la nostra guida su Come installare Docker su Ubuntu 18.04.

Download di immagini

I contenitori sono costruiti a partire da immagini. Per impostazione predefinita, queste immagini vengono scaricate da Docker Hub, un registro di immagini ufficiali fornito dall'azienda.

Chiunque può ospitare le proprie immagini su Docker Hub. Ciò consente l'utilizzo di immagini preconfezionate come base per le tue applicazioni.

Prova a eseguire il comando:

$ docker run centos

Docker cercherà l'immagine "centos" nel registro locale. Non trovandolo (poiché non è stato scaricato finora), Docker lo scaricherà da Docker Hub e creerà il contenitore con questa immagine.

L'immagine utilizzata non fornisce alcun output visivo, ma puoi vedere il contenitore in esecuzione con il comando:

$ docker ps

per vedere tutti i container esistenti, sia in esecuzione che fermi:

$ docker ps -a

Per visualizzare l'elenco delle immagini scaricate, digita:

$ docker images

Costruire contenitori

I container sono simili alle macchine virtuali e sono meno costosi in termini di risorse.

Prova a costruirne uno con l'immagine centos scaricata in precedenza:

$ docker run -it centos

L'opzione "-it" consente l'accesso alla shell all'interno del contenitore. La shell visualizzata non è del tuo sistema operativo ma del container:tutti i comandi verranno eseguiti sulla shell del sistema operativo presente all'interno del container (in questo caso Ubuntu) e non sulla shell dell'host.

Per uscire dalla shell del contenitore e tornare alla shell dell'host, digita:

$ exit

Per avviare, interrompere o eliminare un container:

$ docker start ID_or_container_name
$ docker stop ID_or_container_name
$ docker rm ID_or_container_name

Prima di avviare o eliminare un container, deve trovarsi in uno stato "stop".
Prima di bloccare un container, deve trovarsi in uno stato "run".

I container sono ambienti isolati e quindi "chiusi" per definizione. Per interagire con il loro "contenuto", mappa una porta di comunicazione.

$ docker run -p 8081:80 -d nginx
  • "docker run":comando di avvio del contenitore.

  • "-p 8081:80":espone la porta del contenitore 80 sulla porta 8081 dell'host.

    • Se si tratta di un container che ospita un WebServer, accedi ad esso tramite "localhost:8081".

  • “-d”:esegui il contenitore in background.

  • “nginx”:immagine utilizzata per costruire il contenitore.

    • Se l'immagine non è presente localmente, viene scaricata da Docker Hub.

Immagini di contenitori di edifici

Una volta realizzato il contenitore e le "personalizzazioni" necessarie si consiglia la creazione della relativa immagine:tutto ciò che viene inserito nel contenitore (installazione di moduli aggiuntivi o altre personalizzazioni) rimane nel contenitore e non in l'immagine utilizzata per la build. Se rimosso e ricreato, il contenitore non mostrerà nessuna delle modifiche apportate fino a quel momento.

Supponiamo di aver creato un contenitore con l'immagine CentOS e installato Nginx. Se rimuovi il contenitore e lo ricrei con l'immagine di Ubuntu, non avrai Nginx nel contenitore poiché l'immagine utilizzata non lo contiene.

Per generare l'immagine di un container (e avere un backup per ricreare il container con le stesse condizioni) eseguire il comando:

$ docker commit -m "List of changes made" -a "User name" container_id repository/image_name
  • "-m" viene utilizzato per scrivere l'elenco delle modifiche a cui ottenere un registro a cui fare riferimento

  • "-a" viene utilizzato per indicare il nome dell'utente che genera l'immagine

Questo comando salva l'immagine nel registro locale (visualizzabile tramite immagini docker).

L'immagine può anche essere salvata su Docker Hub. Questo può essere fatto prima autenticandoti su Docker Hub, usando Docker (dalla shell), digitando:

$ docker login -u username
  • Ti verrà richiesto di inserire la password per l'autenticazione su Docker Hub

$ docker push username/image_name

Linux
  1. Come condividere i dati tra contenitori Docker

  2. Come elencare i contenitori Docker

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

  4. Come mettere in pausa e riprendere i contenitori Docker

  5. Come rimuovere tutti i contenitori Docker

Come eseguire SSH nei contenitori Docker [Passo dopo passo]

Come eseguire i contenitori Docker

Come rimuovere i contenitori Docker

Come fermare i container Docker

Come rinominare o rinominare i contenitori Docker

Come SSH in un Docker Container