some more details about images and containers
This commit is contained in:
parent
f63ec76b97
commit
3ab012778c
|
@ -34,17 +34,37 @@ outputs = ["Reveal"]
|
|||
|
||||
---
|
||||
|
||||
## Immagini
|
||||
|
||||
* Un’immagine e' fatta di layer immutabili
|
||||
|
||||
* Due diverse immagini possono condividere un layer comune
|
||||
|
||||
* Sul disco sono salvati i singoli layer, quindi un layer in comune tra piu' immagini e' presente una volta sola
|
||||
|
||||
* Ogni volta che aggiungo qualcosa a un'immagine si crea un nuovo layer aggiuntivo (e quindi una nuova immagine)
|
||||
|
||||
---
|
||||
|
||||
# Concetti base
|
||||
|
||||
## Container
|
||||
|
||||
* Un container e' una "istanza" di una immagine
|
||||
* Un container e' una "istanza" di un'immagine
|
||||
|
||||
* Un container in genere esegue un solo processo (es. apache)
|
||||
* In sostanza ai layer di una immagine viene aggiunto un ulteriore layer che pero' e' scrivibile
|
||||
|
||||
* Da un'immagine posso far partire piu' container indipendenti
|
||||
|
||||
---
|
||||
|
||||
## Container
|
||||
|
||||
* Un container in genere esegue un solo processo
|
||||
|
||||
* Quindi ad esempio se si vuole un CMS servono almeno 2 container: uno per il webserver e uno per il database
|
||||
|
||||
* I container possono comunicare tra di loro tramite un'interfaccia di rete
|
||||
* I container possono comunicare tra di loro tramite un'interfaccia di rete dedicata
|
||||
|
||||
* I container possono comunicare allo stesso modo anche con l'host, per cui ad esempio potrei avere il webserver
|
||||
in un container e il database sull'host
|
||||
|
@ -65,9 +85,11 @@ outputs = ["Reveal"]
|
|||
|
||||
# Docker client
|
||||
|
||||
il client e' l'interfaccia (testuale) per fare tutto, dalla costruzione delle immagini all'esecuzione dei containers.
|
||||
* il client e' l'interfaccia (testuale) per fare tutto, dalla costruzione delle immagini all'esecuzione dei containers.
|
||||
|
||||
esistono intefacce grafiche, ma sono poco utili per imparare a usare docker.
|
||||
* esistono interfacce grafiche, per tutti i gusti, mediamente inutili per un uso "casalingo".
|
||||
|
||||
* esistono anche dei frontend da console, ad es. dry (http://moncho.github.io/dry/)
|
||||
|
||||
---
|
||||
|
||||
|
@ -143,11 +165,11 @@ cfa463df8e9d x86dev/docker-ttrss "/init" 11 month
|
|||
|
||||
## docker run
|
||||
|
||||
fa partire un processo dentro un nuovo container partendo dall'immagine specificata, es. docker run hello-world
|
||||
* fa partire un processo dentro un nuovo container partendo dall'immagine specificata, es. docker run hello-world
|
||||
|
||||
se non si specifica un nome il container avra' un nome casuale, altrimenti usare --name nomescelto
|
||||
* se non si specifica un nome il container avra' un nome casuale, altrimenti usare --name nomescelto
|
||||
|
||||
ci sono un sacco di opzioni, vedi man docker-run, perche' questo e' il comando con cui si fa partire un container e si specificano tutti i "parametri"
|
||||
* ci sono un sacco di opzioni, vedi man docker-run, perche' questo e' il comando con cui si fa partire un container e si specificano tutti i "parametri"
|
||||
|
||||
---
|
||||
|
||||
|
@ -167,9 +189,9 @@ Se e' necessario eseguire piu' processi dentro un container bisogna usare qualco
|
|||
|
||||
## docker exec
|
||||
|
||||
esegue un comando dentro un container in esecuzione, es. docker exec -it /bin/sh mysql
|
||||
* esegue un comando dentro un container, es. docker exec -it /bin/sh mysql
|
||||
|
||||
in questo modo ci si ritrova in una shell sh **dentro** il container mysql in esecuzione.
|
||||
* in questo modo ci si ritrova in una shell sh **dentro** il container mysql in esecuzione.
|
||||
|
||||
---
|
||||
|
||||
|
@ -204,7 +226,7 @@ e' comunque possibile creare reti e assegnare indirizzi IP ai container
|
|||
|
||||
* e' un file "ricetta" per creare una nuova immagine (con docker build)
|
||||
|
||||
* definisce come creare l'immagine (da dove partire e cosa aggiungere (files e pacchetti)
|
||||
* definisce come creare l'immagine (da dove partire e cosa aggiungere (files e pacchetti))
|
||||
|
||||
* definisce alcune configurazioni dell'immagine (es. che porta di rete aprire all'esterno)
|
||||
|
||||
|
@ -286,5 +308,19 @@ docker-compose up -d
|
|||
|
||||
---
|
||||
|
||||
## La pulizia
|
||||
|
||||
* ogni tanto eliminare i container fermi e le immagini inutilizzate puo' aiutare a liberare parecchio spazio
|
||||
|
||||
* ogni volta che si "aggiorna" un'immagine o se ne crea una nuova versione, la precedente resta sul disco
|
||||
|
||||
* ogni volta che il processo eseguito nel container termina il suo compito, il container viene stoppato, e resta li in questo stato.
|
||||
|
||||
* tutti i files stanno in /var/lib/docker (per linux), ma non toccate quella cartella se non sapete cosa state facendo.
|
||||
|
||||
* docker system df per vedere lo spazio usato e quanto se ne puo' recuperare con un docker system prune
|
||||
|
||||
---
|
||||
|
||||
|
||||
# FINE
|
||||
|
|
Loading…
Reference in New Issue
Block a user