¿Qué es Docker? ¿Para qué se utiliza? Explicado de forma sencilla

Aviso: Este post no está pensado para usuarios avanzados de Docker, simplemente es una introducción para entender de forma muy sencilla ciertos conceptos sobre él. Ni siquiera voy a meterme en aspectos técnicos tales como: cómo se usa, cómo montar un contenedor de Docker, ejecutarlo, etc.
Ese no es el objetivo de este post, ya que a nivel de programación hay muchos tutoriales paso a paso sobre cómo utilizar Docker, incluso un tutorial interactivo hecho por sus propios creadores. 

Es muy probable que últimamente de una u otra forma hayas escuchado hablar de Docker en algún contexto: en una conferencia, a un desarrollador de tu empresa, a alguien de sistemas, cuando se habla de entornos, despliegues…
Y es que esta tecnología está bastante relacionada con el área de sistemas, con los entornos en los que se ejecutan las aplicaciones software.
Por ello, puede que al hablar de ella se utilicen palabras muy específicas, al igual que cuando se menciona Puppet (Simplifica drásticamente la administración de sistemas: Puppet en 10 min.), Chef, etc. que gente no familiarizada con estos temas no entiende.
Hoy mi objetivo con este post es que de forma clara, entiendas qué es Docker, por qué su uso se ha extendido tanto en estos años y qué beneficios aporta.
Con estas bases podrás investigar un poco más sobre Docker en la documentación oficial, foros, etc., y utilizar la herramienta de alguna manera, adaptándola a tus necesidades.

¿Qué es Docker?

La idea detrás de Docker es crear contenedores ligeros y portables para las aplicaciones software que puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo que la máquina tenga por debajo, facilitando así también los despliegues.
¡Ala! Definición traducida de la documentación oficial, demasiada información en pocas frases, no me entero de nada. Bien, empecemos por lo primero ¿qué es un contenedor?
Este concepto ya es antiguo, y viene de Linux, pero por hacerte un símil con el mundo real, imagina en tu cabeza un contenedor de esos que suelen llevar los barcos de mercancías, que contiene distintos productos.
docker1
Es algo auto contenido en sí, que se puede llevar de un lado a otro de forma independiente, es portable.
Ahora, volviendo al software, para que podamos acceder como usuarios normales a una aplicación, dicha aplicación software necesita estar ejecutándose en una máquina, en un ordenador. Pero además, dependiendo del tipo de aplicación, dicho ordenador también necesita tener instaladas una serie de cosas para que la aplicación se ejecute correctamente: cierta versión de Java instalado, un servidor de aplicaciones (p.e tomcat, que es el software que realmente estará ejecutando mi aplicación y haciendo que pueda interactuar con ella).
Docker, me permite meter en un contenedor (“una caja”, algo auto contenido, cerrado) todas aquellas cosas que mi aplicación necesita para ser ejecutada (java, Maven, tomcat…) y la propia aplicación. Así yo me puedo llevar ese contenedor a cualquier máquina que tenga instalado Docker y ejecutar la aplicación sin tener que hacer nada más, ni preocuparme de qué versiones de software tiene instalada esa máquina, de si tiene los elementos necesarios para que funcione mi aplicación , de si son compatibles…
Yo ejecutaré mi aplicación software desde el contenedor de Docker, y dentro de él estarán todas las librerías y cosas que necesita dicha aplicación para funcionar correctamente.
En la fecha en la que se ha escrito el post, tienes que tener en cuenta que Docker utiliza ciertos aspectos de Linux, por lo que los contenedores de Docker no funcionan de forma nativa en Windows o OX. Solo funcionan en máquinas Linux, así que si necesitas ejecutar el contenedor sobre una máquina con otro sistema operativo distinto a Linux, deberás instalar una máquina virtual Linux. 

¿Qué beneficios tiene esto?

Docker es una herramienta diseñada para beneficiar tanto a desarrolladores, testers, como administradores de sistemas, en relación a las máquinas, a los entornos en sí donde se ejecutan las aplicaciones software, los procesos de despliegue, etc.
En el caso de los desarrolladores, el uso de Docker hace que puedan centrarse en desarrollar su código sin preocuparse de si dicho código funcionará en la máquina en la que se ejecutará.
Por ejemplo, sin utilizar Docker un posible escenario podría ser el siguiente (hay otras formas de solucionar este escenario, pero por poner un ejemplo claro):
– Pepe tiene en su ordenador instalado Java 8, y está programando una funcionalidad específica de la aplicación con algo que solo está disponible en esa versión de Java.
– José tiene instalado en su máquina Java 7, porque está en otro proyecto trabajando sobre otro código, pero Pepe quiere que José ejecute el código de su aplicación en su máquina. O José se instala Java 8, o la aplicación en su máquina fallará.
Este escenario desaparece con Docker. Para ejecutar la aplicación, Pepe se crea un contenedor de Docker con la aplicación, la versión 8 de Java y el resto de recursos necesarios, y se lo pasa a José.
José, teniendo Docker instalado en su ordenador, puede ejecutar la aplicación a través del contenedor, sin tener que instalar nada más.
Por eso Docker también es muy bueno para el testing, para tener entornos de pruebas. Por un lado, es muy sencillo crear y borrar un contenedor, además de que son muy ligeros, por lo que podemos ejecutar varios contenedores en una misma máquina (donde dicho contenedor tendría el entorno de nuestra aplicación: base de datos, servidor, librerías…). Por otro, un mismo contenedor funcionará en cualquier máquina Linux: un portátil, el ordenador de tu casa, máquinas alojadas en Amazon, tu propio servidor…
Esto además beneficia a la parte de sistemas, ya como los contenedores son más ligeros que las máquinas virtuales, se reduce el número de máquinas necesarias para tener un entorno.
Y lo que es mejor, Docker es open source.
Pero Docker también tiene otras ventajas. En el post de la semana que viene hablaré un poco más de cuáles son los principales elementos de Docker, y veremos otros beneficios que aporta la herramienta. 

¿Y qué diferencia a Docker respecto a una máquina virtual?

Puede que cuando he hablado de que en un mismo ordenador podemos tener varios contenedores Docker te hayas preguntado: ¿y esto no es lo mismo que una máquina virtual?
Realmente el concepto es algo similar, pero un contenedor no es lo mismo que una máquina virtual. Un contenedor es más ligero, ya que mientras que a una máquina virtual necesitas instalarle un sistema operativo para funcionar, un contenedor de Docker funciona utilizando el sistema operativo que tiene la máquina en la que se ejecuta el contenedor.
Digamos que el contenedor de Docker toma los recursos más básicos, que no cambian de un ordenador a otro del sistema operativo de la máquina en la que se ejecuta. Y los aspectos más específicos del sistema que pueden dar más problemas a la hora de llevar el software de un lado a otro, se meten en el interior del contenedor.
Para que te hagas una idea, el concepto de portabilidad de un contenedor de Docker es algo similar a la máquina virtual de Java.
Que un contenedor Docker tome los aspectos básicos de funcionamiento del sistema operativo de la máquina en la que se ejecuta lo vuelve más ligero que una máquina virtual.

La semana que viene…

Si quieres entender un poquito más de Docker, la semana que viene hablaré de los principales elementos que engloba: imágenes, contenedores, links…qué es cada cosa y para qué sirven, ya que dichos elementos nos proporcionan ciertos beneficios. Por último, veremos qué diferencia en cada caso a Docker con respecto a Puppet, Vagrant, Ansible o tecnologías de este tipo, y próximos pasos para profundizar en el uso de Docker.

72 comentarios en “¿Qué es Docker? ¿Para qué se utiliza? Explicado de forma sencilla”

  1. Estamos empezando a utilizar esta tecnología y he de decir 2 cosas:
    – Abre un mundo de posibilidades.
    – Mucho cuidado con usarla en producción.

    1. Ana M. del Carmen García Oterino

      Genial! 🙂
      En un cliente también estamos en «proceso de transición» hacia docker, de forma incremental. Pero nuestra idea es ir incorporándolo también en producción.
      El otro día en el meetup de Docker Barcelona, se expusieron casos de éxito de Docker hasta producción:
      https://speakerdeck.com/spiddy/docker-in-production
      Por si te sirve Antonio! Gracias por comentar 🙂

      1. Nosotros estamos teniendo dificultades con el orquestado de los servicios, la configuración en alta disponibilidad y la recuperación en caso de caída.
        ¿Que experiencia tenéis en estos puntos?

      2. En la fecha en la que se ha escrito el post, tienes que tener en cuenta que «Docker utiliza ciertos aspectos de Linux, por lo que los contenedores de Docker no funcionan de forma nativa en Windows o OX. Solo funcionan en máquinas Linux, así que si necesitas ejecutar el contenedor sobre una máquina con otro sistema operativo distinto a Linux, deberás instalar una máquina virtual Linux. »
        «contenedor es más ligero, ya que mientras que a una máquina virtual necesitas instalarle un sistema operativo para funcionar, un contenedor de Docker funciona utilizando el sistema operativo que tiene la máquina en la que se ejecuta el contenedor.»
        Hola soy un poco novata en esto no sé si lo estoy entendiendo bien o estos dos comentarios son contradictorios . Eso o es que seguimos hablando de Linux.
        Ni sé si me estoy expresando buen y entiendes lo que quiero decir. Gracias de antemano . Un saludo.

    2. Ana M. del Carmen García Oterino

      Antonio, respondiendo a tu pregunta con respecto al orquestrado de servicios, alta disponibilidad y recuperación en caso de caída.
      Estamos en ello, estudiando cuál es la mejor alternativa. En este caso, nuestra infraestructura está en Amazon y tenemos que ver cómo gestionar el tema.
      Estudiaremos CoreOS como sistema operativo en las máquinas de producción, para esos temas que comentas: https://coreos.com/using-coreos/
      No sé que estaréis utilizando, pero distintas alternativas para gestionar Docker en producción, por si os sirve de ayuda:
      – Compose (Gestionar aplicaciones multicontenedor, https://docs.docker.com/compose/) + Swarm (Cluster nativo de Docker, https://docs.docker.com/swarm/)
      Persistencia de datos en volúmenes, o fuera de los contenedores.
      – CoreOS + Fleet Unit: https://coreos.com/fleet/docs/latest/launching-containers-fleet.html
      Igualmente iremos incrementalmente, no vamos a migrar todo a Docker de golpe en producción. Iremos probando máquina a máquina y viendo qué problemas nos encontramos y cómo solucionarlos.
      Aquí el tema de las Canary Releases (http://martinfowler.com/bliki/CanaryRelease.html) nos viene de fábula.
      – Mesosphere: https://mesosphere.com/
      – Kubernetes: http://kubernetes.io/
      Un saludo!

    1. Ana M. del Carmen García Oterino

      Creo que son cosas diferentes, el concepto de Docker viene de los contenedores de Linux LXC (https://en.wikipedia.org/wiki/LXC):
      – Vagrant se ejecuta sobre VirtualBox, VMware, etc, se utiliza para gestionar máquinas virtuales. Y como aprovisionamiento (indicar qué quieres que tenga dicha máquina virtual) puedes utilizar Puppet, Chef, incluso un contenedor de Docker.
      – Docker no se ejecuta sobre una máquina virtual, sirve para crear contenedores y ejecutar tus aplicaciones en dichos contenedores. Por ejemplo, un contenedor con java, tomcat y tu aplicación dentro. Digamos que puedes ejecutar tus aplicaciones con todo lo que necesitan ahí dentro, incluso interactuar con ella. Después puedes mover dicho contenedor y ejecutarlo con docker en otra máquina.
      Docker solo se ejecuta sobre Linux, ya que toma ciertos recursos del sistema operativo, lo que le hace más ligero que una máquina virtual. Además se pueden versionar contenedores de Docker con cada cambio que hagas (instalar una nueva librería, un cambio en el código de la aplicación…). Incluso, si por ejemplo a nivel de Docker ya tienes una imagen de java 8, si te creas otro contenedor que dependa de ese no tendrás que volver a bajarte la imagen de Java 8.
      Por otra parte, si necesitas ejecutar contenedores de Docker sobre otros sistemas, tienes que o crearte una máquina virtual con Linux o usar Boot2Docker.
      – Si me apuras, compararía más Vagrant con Boot2Docker, una virtualización que me instala Linux y lo necesario para poder ejecutar Docker. Así que rizando el rizo, lo que podría hacer es ya que Docker solo se ejecuta sobre Linux, utilizar Vagrant para montar una máquina virtual Linux y sobre eso ejecutar los contenedores de Docker.
      No sé si me expliqué bien 😛

    2. Me encanto tu explicación y muy sencillo. Agradezco infinitamente tu post. La verdad espero que el conocimiento de todos sea igual de explicado asi como tu la haces.

  2. Un pregunta: del artículo interpreto que la tecnología de contenedores, que se puede simular mediante procedimientos, y métodos, sirve sólo para fases de desarrollo y pruebas? Gracias.

  3. Suerte encontrar tu artículo. No había forma de aclararme con la info de wikipedia. Además que justo cuando estaba pensando en su diferencia con las VM zas llega tu explicación en el mismo artículo.
    Muy bueno y muy claro. Gracias

  4. Buenas Ana, muy buena la explicación conceptual. Solo hay algo que no entiendo muy bien, al final Docker es como una aplicación standalone (Una aplicación que tiene su servidor de aplicaciones, versión java, ¿la aplicación ya instalada?, y otros recursos que pueda necesitar la aplicación), que al final lo que realiza es copiarla en la máquina cliente de Linux para que pueda posteriormente ejecutarse. Mi duda es que si realmente Docker es un contenedor que al final copia el contenido en la maquina cliente.
    Saludos.

    1. @Victor
      Docker es una aplicación, pero por sí sola no hace nada.
      Lo que docker hace es ejecutar contenedores, y dentro de los contenedores es donde tu pones lo que quieras: aplicaciones, datos, configuraciones, variables de entorno… lo que sea.
      Por tanto docker lo que hace es ejecutar un «pack» de cosas que de manera tradicional son laboriosas de instalar, tunear y ejecutar.
      Por ejemplo, si tienes que ejecutar una aplicacion que necesita una versión concreta de java, un servidor apache con el upload por fichero aumentado de 16 a 300 megas, una configuracion concreta del sistema y una aplicación, necesitarías instalar todo eso a mano, o si eres muy manitas, hacer un script que te haga todas esas cosas.
      El problema es que puede que tengas ya un apache instalado que requiere otra configuracion concreta para otra aplicacion, u otra version de java, u otra dependencia que choca con lo que quieres instalar tu. Además de manual, resultaría casi imposible instalar todo sin que entre en conflicto.
      Ejecutando contenedores te aseguras de 2 cosas:
      1) La persona que ejecuta el contenedor esta usando el mismo software y configuraciones que el creador del contenedor.
      2) Al ser los contenedores entornos aislados unos de otros, te evitas el que distintas configuraciones o softwares entren en conflicto en una misma máquina.
      No se si te ha quedado más claro o te he hecho más lío 😛

  5. Hola! Realmente excelente tu explicación, yo recien comienzo con esto y mi gran duda es, cómo accedo al contenedor? Es como conectarme por ssh?
    Muchisimas gracias por tu publicación, me ha abierto la cabeza!

  6. para acceder al contenedor, solo debes tener los 4 primeros digitios del id del contenedor y ejecutar en la linea de comando ‘docker exec -it bash’ reemplanzando el por tus digitos del contenedor, si quieres saber los digitios del contenedor (id) ejecuta la accion ‘docker ps’ y ahi te listara todos los docker que tienes en ejecucion.

  7. wao excelente forma de explicar, me cabo de enterar del concepto de docker y su utilización, voy a empezar desde 0, esto se pone bueno. Solo espero encontrar mas aportes como este

  8. Frank Luis Figueredo Castillo

    Excelente artículo, mis felicitaciones y muchas gracias, me ayudo mucho para entender el docker.
    Saludos a todos y buen día

  9. ¡Genial artículo!
    He leído por mi cuenta varias cosas para entender y empezar a utilizar docker y por primera vez me ha quedado lo suficientemente claro para seguir y probar.
    Un saludo!

  10. Julian Hernandez

    Ana María, Excelente explicación!
    Leí el artículo y quedó claro el concepto, ya que hay mucho contenido que dice muchas cosas pero no aterriza el verdadero uso y las diferencias vs máquinas virtuales.
    Saludos

  11. Me quedo con grandes dudas sobre si eso resolvería mis casos:
    – Plataforma Linux con WinXP virtualizado con un software del que no haré publicidad porque nos dejaron tirados a los 4 años y ya no nos proporcionaban la clave de activación porque «esa versión ya no se mantenía». La solución fue instalar Linux y virtualizar dicho WinXP porque no se puede volver a instalar el citado software (aún disponiendo de la licencia y factura correspondientes) y había que cambiar si o si de equipo. El problema VirtualBox hace pesada la carga de WinXP. ¿Sería Docker una solución liviana que permitiera «migrar» desde VB lo que se necesita de WinXP y la aplicación instalada?
    – Usuarios de Windows a los que les interesa el software libre están atados de manos corporativamente y no se les puede instalar Linux y así usar, por ejemplo Digikam, que es un administrador de fotos muy potente que usa bases de que genera a partir de las imágenes. ¿Sería Docker una solución para poder usar Digikam y que éste acceda con un buen rendimiento a las imágenes que se encuentran en el disco duro del anfitrión?
    Gracias

  12. hola
    cuando se instala docker en empresas se convierte en licenciado comercial o es free?
    como es el modo de licenciamiento?
    en desarrollo no se cobra y en producción si?
    que se cobra soporte y licenciamiento?

  13. Hola,
    Gracias, por la explicación,
    soy un neófito de este tema y quiero entender los pro y los contras..y diferencias.
    Creo que la confusión, que al menos tengo yo, es que a Java se le dice que corre en una maquina virtual y Virtual Box le dicen que es un maquina virtual, o sea la mismas palabras.
    Para mi maquina seria el hardware, en el caso de VBox imita a los circuitos integrados o placa madre, acaso la VM de java imita a los circuitos integrados de una placa madre?, si es así seria una maquina virtual del tipo VBox, pero sino imita a un hardware, seria un contenedor mas complejo nada más ?….Y en realidad existirían contenedores más complejos y menos complejos. Ergo Docker seria un contenedor menos complejo respecto al contenedor de Java, es así ? Java no debería decirse que se ejecuta en un Contenedor también ? o Java tiene un sistema operativo cargado ?
    Cual es la caída del rendimiento ? Ninguna ?
    Si existen varios contenedores cada uno con sus librerías o versiones de Java , entonces estarían corriendo tantas versiones de java como contenedores ? y si hay 2 contenedores con la misma versión se estarían ejecutando 2 veces la misma versión de java en 2 contenedores distintos?
    Si es así, no es un derroche de espacio, CPU y memoria..?…o se puede compartir una misma versión de librerías para varios contenedores?
    Creo que normalmente en un OS se crean tantas maquinas virtuales como programas se estén ejecutando, y no habría diferencia en eso….
    Algo que no encuentro en ningún lado es la comparación…entre Wine versus Docker en cuanto a rendimiento ,no a lo que hacen.
    Wine lleva las aplicaciones de windowws a Linux y dicen que es muy liviano no es una maquina virtual pues justamente usa los servicios del sistema operativo anfitrión en este caso Linux. El concepto es el mismo entonces usar los servicios del SO?.
    Pero en definitiva wine no es una maquina virtual ni tampoco un contenedor ? o seria un contenedor?
    Si copio la carpeta .wine de una maquina a otra no estoy llevando todo y funcionaria ? (nunca lo hice todavía, pero claro solo se puede tener una sola depende del linux..)
    Saludos y Gracias
    Jose

  14. Bueno docker es a linux como zones es solaris o Jails es FreeBSD , asi que es una forma de virtualizar un systema operativo usando modulos de kernel sin tener que usar todo un sistema operativo completo asi que la dependencia del kernel es directamente proporcional es decir docker necesita del kernel de linux, zones necesita el kernel de solaris, la diferencia real que tiene docker es que llega en el momento del despliegue en la nube y automatiza muchos procesos y permite descargar ya contenedores desarollados … no se puede comparar docker de ninguna forma con Virtual Box y mucho menos con Java VM.
    Yo soy un ingeniero con mas de 10 años de experiencia en sistemas operativos llevo trabajando 8 años en Oracle (antes trabajé en Sun Microsystems) para los que no saben SunMicrosystems es el autor de Java y Solaris y en su momento compro a Virtual Box y a Mysql

    1. Hola amigo, una pregunta:
      ¿Quién te preguntó si sos Ingeniero o no? ¿Acaso alguien te pregunto sobre tus años de experiencia o dónde trabajas?
      A nadie le interesa, asique no lo cuentes.
      Saludos!
      PD: Busca un foro donde la gente comparta su profesión y sus pasiones, acá estas comentando cosas equivocadas.

    2. Milton Osses, iba a decir lo mismo que tu dijiste, hasta que lei tu comentario. Cabe aclarar que en sus comienzos las Zones de Solaris (en su version 9) tambien se llamaban Container/Contenedores como se llaman en Docker ahora. Yo tambien soy un ex-Sun microsystems y actual Oracle Sun. Saludos.

  15. Una plataforma de uso academico,tengo un servidor local hp con sistema operativo anfitrion centos 7. Se creo usando virtualbox 2 maquinas virtuales tambien con so centos7, una con servidores de aplicacion, lenguajes, etc. Y la 2 con sistemas gestores de base de datos. Se almacenan y despliegan proyectos en python,php, jsp con mysql, postgresql,mongodb…donde se crean usuarios donde c/u suben los proyectos. Se desea mitigar problematicas de disponibilidad, ante numero de peticiones y usuarios, falla electrica, seguridad de datos, caida servidor local,etc. Quiero crear un modelo hibrido usando doker, usandolo para distribuir carga, usarlo cuando el local falla, copias de respaldo, sincronizar y actualizar, por ejemplo apagar el local y el servicio siga funcionando con los datos, y aplicaciones existentes. Permitiendo desplegar, y hacer cambios. Y cuando se encienda o resuelva problema local, se tomen esos cambios al servidor local, de la manera mas automatica y transparente para el usuario final. Doker me puede servir?, con que herramientas y servicios?, como?….gracias.

  16. Muy buen articulo, se lee bastante bien, mas sin embargo, siempre tengo dudas. Tomando en cuenta que Docker se ejecuta como una maquina virtual dentro del sistema operativo tomando los recursos mas basicos del mismo, como hace para controlar la compatibilidad de los elementos empaquetados con el sistema operativo mismo, es decir, entiendo que sea un contenedor que incluye dichas herramientas, pero que ocurre si inserto una herramienta incompatible con la version actual del sistema operativo en curso? acaso Docker es tan independiente del sistema operativo como una maquina virtual capaz de dar soporte a compatibilidad de versiones?

  17. Muy bien explicado Ana, sin embargo tengo una pregunta, ojalá me puedas ayudar:
    Actualmente tengo un programa que sólo funciona para windows xp y windows 7, necesitamos utilizar ese programa en windows 10. Hay la posibilidad de convertir una maquina virtual de windows XP o 7 (con el programa instalado) a contenedor y posterior correr el contenedor en windows 10? Es posible esto? o existe alguna otra alternativa?
    Mil gracias.

    1. Excelente, soy ingeniero de sistemas con mas de 10 años de experiencia.
      Docker excelente aclaración, te felicito Ana!!!eres la mejor.
      Pór otro lado Payasos! no dañen los comentarios de la gente, si quiere compartir su experiencia dejarlo tranquilo, si te aporta bien y si no toma lo que te sirve sin comentarios negativos
      Gabriel. HP

  18. Buenas tardes,
    ¡Pedazo de artículo! Enhorabuena y gracias!!
    En mi caso, soy programador web y actualmente acabo de empezar a trabajar en una nueva empresa, la cual tiene establecida una metodología de trabajo concreta, que incluye estos softwares entre otros…
    Al principio es mucha información de golpe, y gracias a contenidos como éste, las cosas me van quedando claras poco a poco…
    Un saludo y gracias!

  19. Pingback: Wiki – Desarrollo Web Autodidacta

  20. Es algo incongruente. Y no lo entiendo.
    Prmero se dice que «La idea detrás de Docker es crear contenedores ligeros y portables para las aplicaciones software que puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo que la máquina tenga por debajo».
    Pero no puedo usar Docker de manera nativa en windows y debo instalar una maquina virtual.
    Y despues «¿y esto no es lo mismo que una máquina virtual?
    Realmente el concepto es algo similar, pero un contenedor no es lo mismo que una máquina virtual. Un contenedor es más ligero, ya que mientras que a una máquina virtual necesitas instalarle un sistema operativo para funcionar, un contenedor de Docker funciona utilizando el sistema operativo que tiene la máquina en la que se ejecuta el contenedor.»
    Entonces si o si necesitas tener una maquina virtual. No le veo el sentido.

    1. Te haces bolas amigo: una máquina virtual es donde ínstalas un sistema operativo y sus configuraciones para ejecutar una aplicación con ciertos componentes adecuados para el sistema operativo, así como configuración adicional de los componentes del Sistema Operativo para que tu aplicación funcione.

      Un contenedor es simplemente un core de Linux donde solo se necesitan los componentes requeridos para tu aplicación y no se necesita más que correrlo, independientemente del sistema operativo anfitrión.

  21. Buenas noches, una duda que me surge al leer tu post, docker es entonces como un virtualizador de aplicaciones, es decir, se podría instalar ms offices en docker y despues correr esa instancia en una máquina con linux y correria el aplicativo?

  22. Javier Chiquito Avellán

    Felicitaciones!!! Muy buena explicación. Muchísimas gracias. He entendido completamente lo que has explicado aquí. Parece tan sencillo. Sigue así!!!

  23. Para aquellos que preguntan el por qué en Windows se debe instalar una maquina virtual es debido a lo que menciona el autor Docker solo se puede ejecutar en Linux entonces si o si debemos virtualizar Linux para tener instalado Docker. Lo que me parece curioso es si queremos llevarnos el contenedor a otro equipo para que lo prueben esa persona debe tener instalado Linux también porque de otro modo no podría correr Docker alguien me podría decir si es correcto lo del final?

  24. Hola, me descargué el instalador de Docker y no abre. No puede ser un problema del instalador en sí porque lo descargué varias veces siguiendo diferentes tutoriales. Siempre tengo el problema en el mismo punto: cuando intento ejecutar el instalador. Alguna idea acerca de qué puedo hacer para instalarlo?

  25. Saludos; tengo una consulta, como se puede hacer correr una aplicación Windows desde un hosting, se puede meter en un contenedor y hacerla funcionar con docker?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This
Ir arriba