small updates

This commit is contained in:
putro 2020-05-08 20:34:50 +02:00
parent 3ab012778c
commit c0ca16a5ae

View File

@ -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 <br /> 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"]
* Unimmagine 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