diff --git a/docker/001-vm-container.md b/docker/001-vm-container.md index d1ed27f..a5316ad 100644 --- a/docker/001-vm-container.md +++ b/docker/001-vm-container.md @@ -16,6 +16,8 @@ A differenza delle VM, i container non eseguono un sistema operativo completo. N Rispetto alle VM, i container offrono prestazioni superiori e una maggiore flessibilità. È possibile modificare le risorse allocate a un container durante la sua esecuzione, senza necessità di spegnere il container stesso, evitando così downtime. Al contrario, le VM, simili a hardware reale, richiedono un riavvio per apportare modifiche alle risorse allocate. -Tuttavia, i container presentano anche delle *limitazioni, in particolare riguardo all'isolamento*. Sebbene offrano un certo livello di separazione, l'isolamento dei container è più debole rispetto a quello delle VM, poiché avviene solo a livello di processo e non di risorse. I container sono, infatti, processi in esecuzione sul sistema host e, a differenza delle applicazioni tradizionali, hanno accesso limitato alle risorse. +Tuttavia, i container presentano anche delle *limitazioni, in particolare riguardo all'isolamento*. Sebbene offrano un certo livello di separazione, l'isolamento dei container è più debole rispetto a quello delle VM, poiché avviene solo a livello di processo e non di risorse. I container sono, infatti, *processi in esecuzione* sul sistema host e, a differenza delle applicazioni tradizionali, hanno accesso limitato alle risorse. + +Un programma in esecuzione all'interno di un container è quindi *isolato* nel senso che può accedere esclusivamente alle risorse specificamente assegnate a quel container. ![container-vm](asset/img/container-vm.png) diff --git a/docker/002-immagini.md b/docker/002-immagini.md new file mode 100644 index 0000000..6d59573 --- /dev/null +++ b/docker/002-immagini.md @@ -0,0 +1,11 @@ +# Immagini + +L'immagine può essere vista come l'eseguibile che avvia un container. A partire da un'immagine, è possibile creare molteplici container, che rappresentano *istanze* di quell'immagine. In altri termini, l'immagine si comporta come una specie di *archivio*, contenente l'applicativo da eseguire, insieme a tutte le sue dipendenze, librerie e altri asset necessari. + +![apache-img](asset/img/apache-img.png) + +Ogni strato, o `layer`, dell'immagine introduce nuove funzionalità o modifiche. La separazione delle aggiunte su layer distinti consente di condividere i layer comuni tra diverse immagini, evitando la duplicazione dei dati e ottimizzando l'uso dello spazio su disco. + +![layer](asset/img/layer.png) + +La definizione dell'immagine avviene tramite i `Dockerfile`, che specificano le istruzioni necessarie per costruire l'immagine. diff --git a/docker/003-registry.md b/docker/003-registry.md new file mode 100644 index 0000000..494edcd --- /dev/null +++ b/docker/003-registry.md @@ -0,0 +1,9 @@ +# Registry + +Un registry può essere paragonato a un elenco telefonico, in quanto contiene gli indirizzi di tutti i repository disponibili. I repository, a loro volta, ospitano tutte le versioni di un determinato software. + +![registry](asset/img/registry.png) + +Il registry più popolare e ampiamente utilizzato è [Docker Hub](https://hub.docker.com/). + +È fondamentale sottolineare che tutte le immagini presenti nei repository dei vari registry seguono lo stesso standard, l'`OCI` (*Open Container Initiative*). Questo standard garantisce che qualsiasi immagine scaricata da questi registry sia completamente compatibile con Docker, Podman o qualsiasi altro container engine che rispetti questa specifica. diff --git a/docker/asset/img/apache-img.png b/docker/asset/img/apache-img.png new file mode 100644 index 0000000..8c2e6bc Binary files /dev/null and b/docker/asset/img/apache-img.png differ diff --git a/docker/asset/img/layer.png b/docker/asset/img/layer.png new file mode 100644 index 0000000..c1e5e60 Binary files /dev/null and b/docker/asset/img/layer.png differ diff --git a/docker/asset/img/registry.png b/docker/asset/img/registry.png new file mode 100644 index 0000000..137f89f Binary files /dev/null and b/docker/asset/img/registry.png differ