Docker windowsDocker en Windows

Como hemos visto en Docker Compose, los contenedores comparten el núcleo del sistema operativo y, como resultado, no podemos tener un contenedor de Windows ejecutándose en el host de Linux o viceversa. Tenemos que tener esto en cuenta, ya que es un concepto muy importante y la mayoría de los principiantes tienden a tener un problema con él. 

Opciones ara Windows

Hay dos opciones para ejecutar Docker en Windows. Una de ellas es utilizar la caja de herramientas Docker y otra es el escritorio de Docker para Windows.

Docker Linux sobre Windows

Este fue el soporte original para Docker en Windows. Si se tiene un portátil con Windows sin acceso a ningún sistema Linux, lo que se hace es instalar un software de virtualización. Hay varias opciones como Oracle VitualBox o VMWear workstation. Se implementa una máquina virtual Linux con Ubuntu o Debian y luego se instala Docker en la máquina virtual. Realmente no tiene mucho que ver con Windows ya que no se pueden crear imágenes Docker basadas en Windows ni ejecutar contenedores Docker basados en Windows. 

Docker para Windows nos proporciona un conjunto de herramientas para facilitar las anteriores tareas. Se denomina Docker toolbox y contiene un conjunto de herramientas como la Máquina Virtual de Oracle, el motor Docker, la máquina Docker Composer y una interfaz de usuario llamada Katematic. Esto ayuda a comenzar, de una forma rápida con Docker en Windows. La máquina virtual implementa una máquina virtual liviana llamada Boot to Docker que ya tiene Docker internamente.

Los requisitos necesarios son un Sistema operativo Windows 7 de 64 bits o superior y que la virtualización esté habilitada en el sistema. Recuerde que Docker toolbox es una solución heredada para todos los sistemas de Windows que no cumplen con los requisitos para ejecutar la opción de Docker para Windows.

Otra opción es eliminar Oracle Virtualbox y usar la tecnología de virtualización nativa de Windows llamada Microsoft Hyper V. También creará automáticamente un sistema Linux debajo, pero esta vez encima de Microsoft Hyper V en lugar de Oracle Virtual Box. Debido a esta dependencia de Hyper v, esta opción solo es compatible con Windows 10 Enterprise Professional Edition o en Windows Server 2016 porque ambos sistemas operativos vienen con soporte Hyper V de forma predeterminada.

Docker Desktop

Hasta ahora no hemos hablado de aplicaciones Windows o imágenes de Windows o contenedores de Windows. Las dos opciones que acabamos de comentar ayudan a ejecutar un contenedor de Linux en un host de Windows. Por primera vez, ahora se puede empaquetar aplicaciones de aplicaciones de Windows en contenedores de Docker de Windows y ejecutarlas en el host de Docker de Windows usando Docker Desktop para Windows. 

Para hacerlo se debe configurar explícitamente Docker para que Windows cambie a usar contenedores de Windows. Con esto se pueden crear imágenes basadas en Windows y ejecutar contenedores de Windows en un servidor de Windows tal como lo haría con contenedores de Linux en un sistema Linux. También se pueden crear aplicaciones de contenedor de imágenes de Windows y compartirlas a través de la tienda Dockers.

A diferencia de Linux, hay dos tipos de contenedores en Windows. El primero es un contenedor de servidor de Windows que funciona exactamente como los contenedores de Linux. El núcleo del sistema operativo se comparte con el sistema operativo subyacente para permitir una mejor frontera de seguridad entre los contenedores y permitir que coexistan núcleos con diferentes versiones y configuraciones. La segunda opción se conoce como aislamiento Hiper V. Cada contenedor se ejecuta dentro de una máquina virtual altamente optimizada que garantiza el aislamiento completo del núcleo entre los contenedores y el host subyacente.

Imagenes

En el mundo Linux se tenían varias imágenes base para sistemas Linux como Ubuntu, Debian fedora Alpine, etc. Eso es lo que especifica al principio del archivo acoplable. En Windows se tienen solo dos opciones: Windows Server Core y Nano Server. Un Nano Server es una opción de implementación para Windows Server que se ejecuta en una fracción del tamaño del sistema operativo completo. Puede pensar que es como la imagen de Alpine en Linux. Los contenedores de Windows son compatibles con Windows Server 2016, Nano Server y Windows 10 Professional y Enterprise Edition. Recuerde que en Windows 10 Professional y Enterprise Edition solo admite contenedores aislados de Hyper V, lo que significa que cada contenedor implementado se implementa en una máquina virtual altamente optimizada.

Hay que señalar que las dos opciones no pueden coexistir en el mismo host de Windows. Si se inició con Docker Toolbox y se quiere migrar a Hyper V hay una migración y una guía disponibles en la página de documentación de Docker.

Para más información puede acudir a https://docs.docker.com/docker-for-windows/

Docker en Mac

Para Mac es similar a Docker en Windows. Docker Toolbox o una opción de escritorio.

Docker Toolbox es un Docker Linux usando Virtualbox en Mac. Simplemente ejecuta contenedores Linux en una caja de herramientas Docker en Mac OS. Contiene un conjunto de herramientas como Oracle Virtualbox, un motor Docker, Docker Compose y una interfaz de usuario llamada kitematic. Cuando se descarga e instala el ejecutable de la caja de herramientas Docker, se instala la caja virtual ligera llamada boot Docker que ya tiene Docker. Esto requiere Mac OS 10.8 o más reciente.

Otra opción más nueva llamada desktop, es como wn Windows, se saca Oracle Virtualbox y se utiliza la tecnología de virtualización de Hyper Kit durante el proceso de instalación para Mac. Creará automáticamente un sistema Linux debajo, pero esta vez se crea en un Hyperkit en lugar de Oracle Virtualbox. Esto requiere Mac OS Sierra 10.12 o más reciente y el hardware de Mac debe ser de 2010 o un modelo más nuevo.

Recuerde que todo esto es para poder ejecutar el contenedor Linux en Mac, no hay imágenes o contenedores basados en Mac.