‫Si busca en la Web una definición de lo que es un contenedor, a menudo
‫verá personas que comparan contenedores con máquinas virtuales.
‫Es cierto que hay algunas similitudes, pero hay tantas cosas que simplemente no son lo mismo.
‫Quiero que hagamos copias de seguridad y digamos que ni siquiera los comparemos con máquinas virtuales. Porque realmente son solo
‫un proceso. Son un proceso que se
‫ejecuta en su sistema operativo host, en nuestro caso Linux. Echemos un vistazo porque es muy fácil de entender el
‫concepto que es realmente un proceso restringido dentro de nuestro sistema operativo host y nada como una máquina virtual.
‫Comencemos una base de datos de Mongo.
‫Vamos a llamarlo mongo. Vamos a ejecutarlo en segundo plano.
‫Y estamos usando la imagen de Mongo.
‫Todo bien. Podemos ver que se está ejecutando y Docker también tiene algo llamado docker
‫top que me permitirá enumerar los procesos que se están ejecutando dentro de un contenedor específico.
‫Veremos allí que tenemos un solo proceso llamado mongod.
‫Puedes ver que es PID, que es su ID de proceso. También podemos hacer eso desde el host. Debido a que este es solo
‫un proceso que se ejecuta en nuestro
‫sistema operativo host, cualquier herramienta de host que use para examinar los procesos verá este proceso.
‫Podemos usar una lista de procesos, por ejemplo. Voy a enumerarlos a todos en el sistema. Verás aquí, si busco,
‫uno de ellos se llama mongod. Incluso se dará cuenta de que en realidad se está ejecutando
‫bajo una ID de proceso diferente que el resto del sistema.
‫Y eso es solo por las capas de seguridad de las que hablaremos con los contenedores y por la forma en que son
‫un poco diferentes a los procesos normales que se ejecutan en el host.
‫Podemos ver claramente que este es un proceso en el host.
‫No se esconde dentro de una máquina virtual a la que no podemos acceder.
‫Está justo frente a nosotros.
‫Si detengo este contenedor,
‫puedes hacer un docker ps. Verás que no se está ejecutando.
‫Puedes hacer un docker top mongo.
‫En realidad, no nos va a dar nada porque el contenedor no está funcionando.
‫Y si hacemos un ps aux, y buscamos
‫mongo nuevamente, no
‫vamos a ver nada resaltado en esa lista. En realidad estoy buscando dentro de mi terminal.
‫Una forma más fácil de
‫hacer esto sería hacer ps aux y luego usar grep, que es una herramienta de filtrado que examinará el resultado, y podemos pedirle que busque
‫la palabra mongo.
‫Lo único que realmente va a encontrar es el comando que acabo de ejecutar para buscar la
‫palabra mongo.
‫Está enumerando eso. Esperaríamos ver otro comando aquí
‫debajo de él, otro resultado de
‫un proceso, si realmente se estaba ejecutando. Podemos volver a comenzar de nuevo, docker start mongo, porque ese contenedor
‫todavía estaba allí, simplemente no se ejecutaba
‫en segundo plano, como un proceso detenido. Podemos hacer un docker ps nuevamente y volver a funcionar nuevamente.
‫Podemos hacer un dock top mongo nuevamente y ver que hay un proceso que se ejecuta nuevamente dentro del contenedor.
‫Simplemente ha comenzado nuevo.
‫Solo hemos estado despiertos durante seis segundos, como podemos ver aquí.
‫Si hacemos un ps aux grep mongo, verás que ahora estoy viendo el proceso de mongod.