‫Se si cerca sul Web una definizione di cosa sia un contenitore, spesso si
‫vedono persone che confrontano contenitori con macchine virtuali.
‫È vero, ci sono alcune somiglianze, ma ci sono così tante cose che non sono uguali.
‫Voglio che eseguiamo il backup e diciamo che non li paragoniamo nemmeno alle macchine virtuali. Perché in realtà sono
‫solo un processo. Sono un processo in
‫esecuzione sul sistema operativo host, nel nostro caso Linux. Diamo un'occhiata perché è super facile comprendere il concetto che
‫in realtà è solo un processo limitato all'interno del nostro sistema operativo host e nulla come una macchina virtuale.
‫Iniziamo un database Mongo.
‫Lo chiameremo mongo. Lo faremo in background.
‫E stiamo usando l'immagine Mongo.
‫Tutto ok. Possiamo vedere che è in esecuzione e Docker ha anche qualcosa chiamato docker
‫top che mi consentirà di elencare i processi in esecuzione all'interno di un contenitore specifico.
‫Vedremo che abbiamo un unico processo chiamato mongod.
‫Puoi vedere il suo PID, che è il suo ID di processo. Possiamo anche farlo dall'host. Poiché questo è solo un
‫processo in esecuzione sul nostro sistema
‫operativo host, qualsiasi strumento host che utilizzerei per esaminare i processi vedrà questo processo.
‫Possiamo usare un elenco di processi, per esempio. Ho intenzione di elencarli tutti sul sistema. Vedrai davvero qui, se
‫cerco, uno di questi si chiama mongod. Si noterà anche che in realtà è in esecuzione con
‫un ID di processo diverso rispetto al resto del sistema.
‫E questo è solo a causa dei livelli di sicurezza di cui parleremo con i container e di
‫come sono leggermente diversi dai normali processi in esecuzione sull'host.
‫Possiamo chiaramente vedere qui questo è un processo sull'host.
‫Non si nasconde all'interno di una macchina virtuale a cui non possiamo accedere.
‫È proprio lì davanti a noi.
‫Se interrompo questo contenitore, puoi
‫fare una finestra mobile ps. Vedrai che non è in esecuzione.
‫Puoi fare un mongo top docker.
‫In realtà non ci darà nulla perché il contenitore non funziona.
‫E se facciamo una ps aux, e cerchiamo di
‫nuovo il mongo,
‫non vedremo nulla di evidenziato in quella lista. In realtà sto cercando all'interno del mio terminale.
‫Un modo più semplice per
‫farlo sarebbe quello di fare ps aux e quindi usare grep, che è uno strumento di filtraggio che guarderà attraverso l'output, e possiamo dirgli di cercare
‫la parola mongo.
‫L'unica cosa che troverà in realtà è il comando che ho appena lanciato per cercare la
‫parola mongo.
‫Sta elencando quello. Ci aspetteremmo di vedere un
‫altro comando qui sotto, un altro output
‫di un processo, se fosse effettivamente in esecuzione. Possiamo iniziare di nuovo il backup, docker start mongo, perché quel container
‫era ancora lì, solo non in esecuzione
‫in background, un po 'come un processo interrotto. Possiamo fare di nuovo una finestra mobile ps ed è di nuovo in esecuzione.
‫Possiamo fare di nuovo un mongo top mongo e vedere che c'è di nuovo un processo in esecuzione all'interno del container.
‫È appena stato appena iniziato.
‫È rimasto solo per sei secondi, come possiamo vedere qui.
‫Se facciamo un ps aux grep mongo, vedrai che ora sto vedendo il processo mongod.