Come utilizzare i contenitori Docker
I container sono la linfa vitale di ogni installazione Docker. Fungono da fondamento della piattaforma Docker e ti consentono di eseguire servizi sul tuo computer senza preoccuparti di dipendenze e conflitti di versione. Qui, ti mostriamo le basi per creare, gestire e personalizzare i container Docker utilizzando lo strumento Docker CLI.
Come trovare ed estrarre un’immagine Docker
I contenitori Docker sono un tipo speciale di ambiente software che consente di eseguire programmi separati dal resto del sistema originale. Per ottenere questo risultato, Docker utilizza “immagini software”. Si tratta di copie statiche di programmi che fungono da base da cui parte un contenitore.
Questa distinzione tra immagine e contenitore ti consente di ricreare e adattare il tuo software in qualsiasi modo necessario. Ad esempio, puoi avere un’immagine come “httpd” ma far girare due contenitori distinti da essa: “website1” e “website2”.
Il modo più semplice per cercare una nuova immagine Docker è utilizzare il search
sottocomando:
Per scaricare l’immagine sul tuo sistema, esegui il seguente comando:
Conferma di aver aggiunto correttamente la nuova immagine al sistema utilizzando il images
sottocomando:
Creazione di una nuova immagine tramite Dockerfile
Oltre a estrarre immagini pre-costruite da Docker Hub, puoi creare immagini direttamente dalla Docker CLI. Ciò è utile se vuoi creare versioni personalizzate di pacchetti software esistenti o se stai trasferendo nuove app a Docker.
Per fare ciò, crea prima una cartella nella tua directory home per i tuoi file di build:
Crea un nuovo Dockerfile utilizzando il tuo editor di testo preferito:
Incolla le seguenti righe di codice all’interno del tuo nuovo Dockerfile:
Crea una cartella “sample-site” e copiala o crea un sito HTML di base:
Salva il tuo nuovo Dockerfile, quindi esegui il seguente comando per compilarlo sul tuo sistema:
Controlla se la tua nuova immagine Docker è presente nell’elenco delle immagini Docker:
Creazione di una nuova immagine utilizzando contenitori esistenti
Lo strumento Docker CLI può anche creare nuove immagini dai container attualmente presenti nel tuo sistema. Ciò è utile se stai già lavorando su un ambiente esistente e vuoi creare una nuova immagine dalla tua configurazione attuale.
Per fare ciò, assicurati che il tuo contenitore non sia attualmente in esecuzione:
Esegui il commit
sottocomando seguito dal nome del tuo contenitore, quindi fornisci il nome della tua nuova immagine Docker:
Verifica che la tua nuova immagine Docker sia presente nel tuo sistema eseguendo docker images
.
Come eseguire e arrestare un contenitore Docker
Con la tua immagine Docker pronta, puoi iniziare a usarla per creare il tuo primo contenitore. Per farlo, usa il run
sottocomando seguito dal nome dell’immagine che vuoi eseguire:
Sebbene questo funzionerà per l’esecuzione del tuo primo contenitore Docker, farlo in questo modo prenderà il controllo della tua sessione shell corrente. Per eseguire il tuo contenitore in background, aggiungi il -d
flag dopo il run
sottocomando:
Il run
sottocomando può anche accettare un certo numero di flag aggiuntivi che possono modificare il comportamento del tuo nuovo contenitore Docker. Ad esempio, il --name
flag ti consente di aggiungere un nome personalizzabile al tuo contenitore:
D’altro canto, puoi usare il --publish
flag per reindirizzare la porta di rete dove puoi accedere al tuo contenitore Docker. Questo è utile soprattutto se non vuoi che il tuo contenitore prenda il controllo di una porta privilegiata:
Puoi controllare tutti i contenitori Docker attualmente in esecuzione nel tuo sistema eseguendo il seguente comando:
Simile al run
sottocomando, ps
può anche accettare una manciata di flag che ne modificheranno il comportamento. Ad esempio, per visualizzare i contenitori attualmente inattivi, usa il -a
flag:
Per disattivare un contenitore in esecuzione, utilizzare il stop
sottocomando seguito dall’ID del contenitore o dal nome del contenitore Docker:
È possibile riavviare qualsiasi contenitore arrestato eseguendo nuovamente il start
sottocomando:
Sospensione e eliminazione di un contenitore Docker
Lo strumento Docker CLI consente inoltre di mettere temporaneamente in pausa e terminare un processo di contenitore in esecuzione. Ciò può essere utile se si sta risolvendo un problema con la configurazione Docker e si desidera isolare o interrompere un contenitore che si comporta in modo anomalo.
Iniziare eseguendo docker ps
per elencare tutti i contenitori in esecuzione nel sistema.
Trova l’ID o il nome del contenitore che vuoi gestire.
Eseguire il pause
sottocomando seguito dal nome del contenitore che si desidera sospendere temporaneamente:
È possibile riprendere un processo sospeso eseguendo il unpause
sottocomando:
Per interrompere un processo che si comporta in modo anomalo, esegui il kill
sottocomando seguito dal nome del contenitore:
Come ispezionare un contenitore Docker
Conoscere i dettagli intricati del tuo contenitore è una parte fondamentale del mantenimento della salute del tuo stack Docker. Ti consente di esaminare rapidamente eventuali problemi potenziali e può fare la differenza tra riparare e rifare l’intera distribuzione.
Per visualizzare una panoramica del tuo contenitore Docker, esegui il inspect
sottocomando:
Facendo questo verrà stampata una lunga stringa JSON che descrive lo stato corrente dell’intero contenitore. Puoi restringere il campo tramite il piping dell’output a jq o utilizzando il flag incorporato -f
seguito dall’oggetto JSON che vuoi stampare:
Stampa dei registri dei contenitori sul terminale
Oltre a ciò, puoi anche tracciare e stampare i log di qualsiasi contenitore Docker attualmente in esecuzione. Questo può essere utile se vuoi controllare come si comporta attualmente il tuo servizio e guardare l’output che sta restituendo a STDOUT.
Per fare ciò, esegui il sottocomando logs seguito dal nome del tuo contenitore:
Puoi anche eseguire il sottocomando logs con il --follow
flag per creare un log continuo del tuo servizio Docker. È simile all’esecuzione tail -f
alla fine di una pipe UNIX:
Similmente ad altri sottocomandi, puoi anche aggiungere vari flag per personalizzare l’output del log del tuo contenitore Docker. Ad esempio, il --timestamps
flag aggiunge un timestamp dettagliato per ogni messaggio che il tuo contenitore invia al suo STDOUT:
Il --details
flag stamperà anche le variabili di ambiente che hai impostato per il tuo attuale contenitore Docker. Nel frattempo, il --since
flag ti consente di mostrare solo i log che si sono verificati dopo un particolare momento:
Come personalizzare un contenitore Docker
In sostanza, un Docker Container è una versione ridotta e semplificata di Linux in esecuzione sul tuo sistema attuale. Ciò significa che, in modo simile a una macchina virtuale, è possibile accedere e recuperare i dati all’interno del tuo container.
Per copiare un file locale dal computer host al contenitore, eseguire il cp
sottocomando:
A volte dovrai anche “entrare” nei contenitori aprendo una shell al loro interno. In questo modo puoi modificare i file, installare i binari e personalizzarli in base alle tue esigenze:
Ora potresti, ad esempio, modificare “index.html” e creare una homepage per il sito web al suo interno.
Per uscire dalla shell del contenitore, premere Ctrl+ Do eseguire il comando exit
sul terminale.
Come eliminare i contenitori e le immagini Docker
La rimozione di Docker Container e Immagini inutilizzati è una parte importante della pulizia generale della tua distribuzione. Ciò ti consente di rimuovere i file non necessari dal tuo server, risparmiando spazio di archiviazione a lungo termine.
Prima di eliminare un contenitore, assicurati di averlo arrestato:
Ora, rimuovi il contenitore utilizzando il rm
sottocomando:
Verifica di aver eliminato correttamente il tuo vecchio contenitore Docker eseguendo docker ps -a
.
Elimina l’immagine Docker originale dalla distribuzione Docker:
Controlla di aver rimosso correttamente l’immagine Docker originale eseguendo docker images
.
Imparare a creare, gestire e rimuovere contenitori Docker è solo una delle cose che puoi fare con il tuo server Linux.
Credito immagine: Shamin Haky tramite Unsplash . Tutte le modifiche e gli screenshot sono di Ramces Red.
Lascia un commento