Docker è una piattaforma che tramite un sistema di virtualizzazione permette di eseguire programmi in pacchetti chiamati container.
I container sono isolati l’uno dall’altro e includono tutte le risorse software, compreso il sistema operativo, e dunque permettono l’esecuzione dell’applicazione.
Deploy Docker: eseguire il deploy di un’applicazione con Docker usando Docker Image
Per eseguire il deploy di un’applicazione con Docker, è necessario prima di tutto avere a disposizione un’immagine.
L’immagine, o Docker image, è un artefatto di sola lettura che contiene un set di istruzioni per la creazione di un container che può essere eseguito sulla piattaforma Docker. L’immagine fornisce un metodo particolarmente comodo per creare pacchetti di applicazioni e ambienti server preconfigurati.
La Docker image, può essere creata mediante un Dockerfile e con il comando docker build.
Possiamo trovare l’immagine appena creata nella lista delle immagini con il comando docker image ls.
Per fare il deploy dell’applicazione sarà necessario avere a disposizione un’istanza di Ubuntu Server con Docker installato. Questa instanza può trovarsi su una virtual machine locale o remota, oppure può trovarsi su una macchina fisica dedicata.
Considera che la macchina virtuale dove verrà eseguito il deploy dovrà avere accesso all’immagine creata. Per fare questo si dovrà copiare l’immagine su un docker registry accessibile via internet. Ci sono molti servizi, tra cui Docker Hub, Amazon ECR o Google Container Registry.
Inoltre, avremo bisogno di creare un account per ottenere la URL del registry e l’abilitazione per poter caricare immagini Docker. A questo punto si potrà caricare l’immagine mediante il comando docker push:
Una volta fatto ciò, accedendo alla macchina con Ubuntu Docker, dobbiamo prendere l’immagine dal registry:
Appena abbiamo ottenuto l’immagine possiamo lanciare un container con il comando docker run:
Deploy Docker: eseguire i comandi all’interno del container
L’attributo -p permette di fare il mapping della porta 80 in modo che sia accessibile dall’esterno. Adesso, lanciando il comando docker ps dovresti vedere il container appena lanciato nella lista.
Per eseguire comandi all’interno del container in esecuzione è possibile eseguire il comando docker exec . Lanciando il comando bash o sh avrai modo di utilizzare la shell all’interno del container, in questo modo:
Scalare più container dinamicamente: i tools di container orchestration
Questo è il metodo più semplice per eseguire il deploy di un container Docker. Che succede se vogliamo eseguire più container e farli interagire tra loro? E se vogliamo scalare il numero di container dinamicamente?
Per fare questo abbiamo bisogno di un tool di container orchestration. Ce ne sono molti, come Docker Swarm, Kubernetes o Amazon ECS, argomenti che tratteremo nei prossimi articoli in maniera approfondita.
Speriamo che questa mini guida possa averti aiutato e soprattutto che ti abbia fatto comprendere come creare un’immagine ed eseguire il deploy di un container.
Docker è oggi un tool imprescindibile per chi si occupa di sviluppo web e di programmazione lato server.
Docker consente infatti di distribuire il codice in maniera più rapida ed è un tool che ci dà una concreta opportunità di rendere omogeneo il funzionamento delle applicazioni ottimizzando il trasferimento del codice.
Read related articles
Kubernetes Cloud: servizi Cloud per Kubernetes, mini guida pratica
Kubernetes Cloud: vediamo da vicino Amazon Elastic Kubernetes Service (EKS) Google Kubernetes Engine (GKE) e Servizio Azure Kubernetes (AKS) I
Come funziona Kubernetes: funzionamento e struttura
Come funziona Kubernetes: mini guida per capire il funzionamento di uno dei tools più importanti per un developer oggi Come
Docker vs Kubernetes: vediamo in cosa differiscono
Docker vs Kubernetes: vediamo in cosa differiscono e perché a volte si tende a far confusione Spesso sentiamo chiedere in