Gracias a las imágenes y co­n­te­ne­do­res de Docker, es posible ejecutar apli­ca­cio­nes en entornos aislados e iniciar dichos entornos. Son, por tanto, dos de los co­m­po­ne­n­tes pri­n­ci­pa­les de esta pla­ta­fo­r­ma de vi­r­tua­li­za­ción de código abierto. En este artículo te ex­pli­ca­mos en qué consisten estos términos y cuáles son sus di­fe­re­n­cias y si­mi­li­tu­des.

Docker Container

Los Docker Co­n­tai­ne­rs son unidades aisladas que contienen apli­ca­cio­nes y sus de­pe­n­de­n­cias. Son muy similares a las máquinas virtuales (VM), pero presentan algunas di­fe­re­n­cias clave. La principal es que el nivel de ai­s­la­mie­n­to de los co­n­te­ne­do­res es li­ge­ra­me­n­te inferior al de las VM, ya que en ellos no es necesario vi­r­tua­li­zar ningún sistema operativo adicional. En su lugar, comparten el sistema operativo y el núcleo del sistema host con otros co­n­te­ne­do­res. Esto ofrece algunas ventajas que hacen del de­sa­rro­llo de apli­ca­cio­nes un proceso más sencillo y rápido, pero también algunos in­co­n­ve­nie­n­tes.

Los co­n­te­ne­do­res consumen muchos menos recursos que las VM, por lo que rinden mejor y pueden iniciarse de manera más rápida que estas. También son mucho más po­r­tá­ti­les, pues solo es necesario tra­n­s­po­r­tar la apli­ca­ción que va a eje­cu­tar­se y sus de­pe­n­de­n­cias. Además, gracias a su baja so­bre­ca­r­ga,es posible ejecutar varios co­n­te­ne­do­res si­mu­l­tá­nea­me­n­te en el mismo sistema.

Una de­s­ve­n­ta­ja asociada al menor nivel de ai­s­la­mie­n­to es que los co­n­te­ne­do­res no son tan seguros como las máquinas virtuales. Dado que todos los co­n­te­ne­do­res tienen acceso al núcleo del sistema operativo, si uno se “infecta” podría causar graves daños. Por ello, cuando las apli­ca­cio­nes requieren un mayor nivel de seguridad, se re­co­mie­n­da utilizar una VM.

Consejo

Como los co­n­te­ne­do­res Docker contienen todas las de­pe­n­de­n­cias ne­ce­sa­rias, las apli­ca­cio­nes web pueden funcionar de manera mucho más fácil. Puedes incluso co­n­fi­gu­rar el servidor Cloud de IONOS para que Docker ya esté prei­n­s­ta­la­do.

Docker Image

Una Docker Image es una plantilla de solo lectura que el motor de Docker utiliza para crear un co­n­te­ne­dor. Los co­n­te­ne­do­res de Docker pueden en­te­n­de­r­se, por tanto, como in­s­ta­n­cias en ejecución de imágenes de Docker. La plantilla contiene las de­pe­n­de­n­cias de la apli­ca­ción que se va a ejecutar, el entorno de ejecución necesario y el código de la apli­ca­ción. Al uti­li­zar­se como plantilla para co­n­te­ne­do­res, las imágenes pueden crear entornos de ejecución cohe­re­n­tes y re­pro­du­ci­bles para las apli­ca­cio­nes.

Las imágenes de Docker se almacenan como archivos binarios, pero también pueden guardarse en formato legible por humanos. Estos archivos basados en texto se denominan Do­c­ke­r­fi­les y contienen todas las in­s­tru­c­cio­nes ne­ce­sa­rias para restaurar una imagen. Tanto las imágenes Docker como los Do­c­ke­r­fi­les son po­r­tá­ti­les, por lo que pueden tra­n­s­po­r­tar­se muy fá­ci­l­me­n­te de un sistema a otro. Así, las imágenes Docker pueden al­ma­ce­nar­se en re­po­si­to­rios de registro como Docker Hub y de­s­ca­r­gar­se desde allí. Las in­s­ta­n­cias de co­n­te­ne­do­res en ejecución también pueden guardarse como archivos de imagen uti­li­za­n­do el comando docker commit.

Consejo

Si trabajas en el sector del de­sa­rro­llo de apli­ca­cio­nes, recuerda mantener en orden tu espacio de trabajo. Al utilizar estas he­rra­mie­n­tas es normal ir acu­mu­la­n­do co­n­te­ne­do­res e imágenes que ya no te serán ne­ce­sa­rios. En nuestro artículo te enseñamos cómo eliminar Docker Co­n­tai­ne­rs y cómo eliminar Docker Images.

¿Cuál es la di­fe­re­n­cia entre Docker Image y Docker Container?

En realidad, las imágenes y los co­n­te­ne­do­res de Docker son lo mismo, pero en formas di­fe­re­n­tes. Una imagen es una plantilla de solo lectura para un co­n­te­ne­dor que contiene todos los archivos, de­pe­n­de­n­cias y entornos de ejecución ne­ce­sa­rios para ejecutar una apli­ca­ción, así como la propia apli­ca­ción. En cambio, un co­n­te­ne­dor es una instancia en ejecución (y no de solo lectura) de este archivo de imagen, del mismo modo que un programa en ejecución es una instancia de los archivos de programa in­s­ta­la­dos en el disco duro.

Así pues, una imagen es un archivo binario al­ma­ce­na­do en el sistema de archivos del ordenador host, mientras que un co­n­te­ne­dor es un proceso en ejecución situado en la memoria principal del sistema. Al igual que una Docker Image se utiliza para crear un Docker Container, un co­n­te­ne­dor en ejecución también se puede guardar como imagen. Esta, a su vez, puede uti­li­zar­se para replicar exac­ta­me­n­te el mismo co­n­te­ne­dor.

Consejo

Al hablar de Docker no solo se hace re­fe­re­n­cia a imágenes, co­n­te­ne­do­res y al motor de Docker. Con el tiempo, en la pla­ta­fo­r­ma se ha de­sa­rro­lla­do todo un eco­si­s­te­ma de he­rra­mie­n­tas, entre las que destacan Docker Hub, Swarm y Machine. Echa un vistazo a nuestro artículo para obtener más in­fo­r­ma­ción.

Ir al menú principal