diff --git a/content/_index.md b/content/_index.md index b2d6550..54ea725 100644 --- a/content/_index.md +++ b/content/_index.md @@ -9,16 +9,32 @@ outputs = ["Reveal"] ## Cos'e': -* una piattaforma aperta per costruire, distribuire ed eseguire applicazioni all'interno di container +{{% fragment %}} * una piattaforma aperta per costruire, distribuire ed eseguire applicazioni all'interno di container {{% /fragment %}} -* esiste per linux/mac/windows +{{% fragment %}} * i container non sono macchine virtuali, ad es. condividono la RAM e il kernel col sistema che li ospita {{% /fragment %}} -* i container non sono macchine virtuali, ad es. condividono la RAM e il kernel col sistema che li ospita +{{% fragment %}} * sono pero' "isolati" dal sistema sottostante grazie a due funzioni del kernel: Control Groups (Cgroups) e Namespaces {{% /fragment %}} -* sono pero' "isolati" dal sistema sottostante grazie a due funzioni del kernel: Control Groups (Cgroups) e Namespaces +{{% fragment %}} * esiste per linux/mac/windows/cloud
https://docs.docker.com/engine/install/ {{% /fragment %}} + +{{% fragment %}} * c'e' una versione gratuita (CE) e una a pagamento (EE) --- +## A cosa serve: + +* a provare un software senza "sporcare" il sistema + +* a far girare un'applicazione in un ambiente piu' "protetto" + +* a offrire portabilita' delle applicazioni (es. da sviluppo a produzione) + +* a fare un sacco di cose in modo piu' veloce, piu' smart, piu' capitalismo insomma. + +--- + +{{% section %}} + # Concetti base ## Immagini @@ -27,9 +43,9 @@ outputs = ["Reveal"] * Esiste un Docker Hub, un repository di immagini gia' pronte -* Si possono costruire facilmente immagini basandosi su immagini pre-esistenti (es. debian-mini) a cui posso aggiungere un singolo pacchetto +* Si possono costruire facilmente immagini basandosi su immagini pre-esistenti (es. debian-mini o alpine) a cui posso aggiungere un singolo pacchetto -* le immagini hanno delle tag associate, per cui ad es. possono esistere diverse "versioni" di una certa immagine, ad es. php:5 e php:7 +* le immagini hanno delle tag associate, per cui possono esistere diverse "versioni" di una certa immagine, ad es. php:5 e php:7 o anche debian:stretch e debian:buster --- @@ -38,22 +54,26 @@ outputs = ["Reveal"] * Un’immagine e' fatta di layer immutabili -* Due diverse immagini possono condividere un layer comune +* Due diverse immagini possono condividere dei layer comuni * 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) +{{% /section %}} + + --- +{{% section %}} + + # Concetti base ## Container * Un container e' una "istanza" di un'immagine -* 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 --- @@ -69,6 +89,8 @@ outputs = ["Reveal"] * 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 +{{% /section %}} + --- # Componenti base @@ -83,6 +105,8 @@ outputs = ["Reveal"] --- +{{% section %}} + # Docker client * il client e' l'interfaccia (testuale) per fare tutto, dalla costruzione delle immagini all'esecuzione dei containers. @@ -193,6 +217,8 @@ Se e' necessario eseguire piu' processi dentro un container bisogna usare qualco * in questo modo ci si ritrova in una shell sh **dentro** il container mysql in esecuzione. +{{% /section %}} + --- ## La persistenza dei dati @@ -222,6 +248,9 @@ e' comunque possibile creare reti e assegnare indirizzi IP ai container --- +{{% section %}} + + ## Dockerfile * e' un file "ricetta" per creare una nuova immagine (con docker build) @@ -254,8 +283,14 @@ EXPOSE 80 docker run -d -p 80:80 --name webserver myimage +{{% /section %}} + + --- +{{% section %}} + + ## docker-compose * e' un software che permette di leggere un file di configurazione per avviare containers @@ -306,6 +341,9 @@ services: docker-compose up -d +{{% /section %}} + + --- ## La pulizia