Hoy en día, Docker se ha convertido en el estándar de facto en el uso de contenedores de software. En este artículo vamos a ver cómo podemos instalarlo en Windows 10, concretamente la versión Docker CE (Community Edition).
"Pero oye Santi, ¿no decían que Docker solo funcionaba en Linux?". Bueno, si revisamos los orígenes de Docker es cierto, se inició como proyecto bajo Kernel Linux, pero ahora ya no. Microsoft no quería quedarse fuera de esta tecnología y llega a un acuerdo con Docker en 2015 para convertirse en partner oficial y de esta forma, incorporar esta tecnología a sus sistemas operativos Windows Server 2016 y Windows 10 (aunque no en todas las versiones está soportado).
Realmente, no es nada nuevo usar Docker en Windows. De hecho, podemos hacer funcionar Docker en Windows 7 y Windows 8 usando VirtualBox, la novedad ahora es que podemos usar Docker de forma nativa en Windows 10 sin necesidad de otras herramientas como Docker ToolBox.
Captura de presentación Docker y sistemas soportados
Docker en Windows y Azure
Microsoft se ha convertido en uno de los mayores contribuyentes de Docker y ha firmado acuerdos para garantizar que Docker se ejecute correctamente en sus sistemas operativos y Azure, ya sea, nativamente o usando Kernel Linux mediante virtualización Hyper-V.
Además, podemos llevarnos los contenedores a Azure con los servicios ACR (Azure Container Registry) para gestionar un registro privado y orquestación con soporte para Swarm, Kubernetes o Mesosphere DC/OS mediante AKS (Azure Container Service).
Visual Studio 2017 también soporta contenedores Docker. Podemos crear aplicaciones .NET Core Dockerizadas directamente desde el IDE, ya que es capaz de generar las imágenes Docker y el Docker Compose de forma automática, pero eso, es un tema que veremos en otro post más adelante.
Vamos al turrón, si queremos instalar Docker debemos cumplir ciertos requisitos en Windows 10:
- Windows 10 versión Professional o Enterprise.
- Actualizado con Anniversary Edition o Creators Update.
- Updates críticos para Windows Containers.
- Compilación igual o superior a 14393.222.
- Virtualización activada en nuestro equipo.
En el caso de no tener virtualización activada, Docker detectará esta característica en el proceso de instalación y nos preguntará para instalarla de forma automática. Si queremos consultarlo, podemos vemos usando el “Task Manager”:
Instalando Docker
El proceso de instalación de Docker en Windows 10, es bastante simple, descargarlo desde aquí: Descargar Docker
Una vez descargado, ejecutamos el archivo y se lanzará el proceso de instalación como vemos en la imagen:
Cuando finalice el proceso, aparecerá la ventana de instalación correcta, pulsaremos el botón de “Close and logout” para terminar de configurar Docker en nuestro Windows 10. En algunos casos, esto provocará que se reinicie el sistema Windows para terminar la configuración:
Después de reiniciar nuestro Windows 10 ya tendremos Docker instalado en nuestro PC.
Como indicaba anteriormente, si no tenemos la virtualizacion activada, Docker nos preguntará para realizar el proceso automáticamente y reiniciará de nuevo nuestro Windows 10, este paso pueda tardar algún tiempo en completar todo el proceso y a veces no muestra ningún mensaje:
Por último, una vez terminado el proceso anterior, ya estamos listos para utilizar Docker, Si pulsamos botón derecho sobre el icono de la barra de tareas veremos las opciones de Docker:
Si ahora pulsamos en “Settings…” veremos la configuración inicial definida de Docker. Si queremos que Docker no arranque con nuestro Windows 10 lo podemos desmarcar aquí, el resto de opciones ya vienen configuradas y listas para funcionar.
En la opción “Advanced”, veremos los ajustes por defecto que Docker reserva de forma dedicada para manejar sus imágenes y contenedores, también lo podemos cambiar si fuera necesario:
Hay que recordar que Docker es una plataforma completa para trabajar con contenedores y al finalizar la instalación en nuestro PC disponemos de las siguientes herramientas:
- Docker Engine
- Docker Client
- Docker Compose
- Docker Machine
Con estos simples pasos, concluiríamos el proceso de instalación de Docker.
Experimentando con Docker
Para trabajar con Docker y familiarizarnos con la herramienta, podemos usar la consola o PowerShell. En mi caso voy a utilizar la consola CMD para empezar a usar Docker, comentar que existen opciones como Kitematic o Portainer si estamos más cómodos trabajando con herramientas gráficas IU.
Lo primero, es abrir la consola CMD y ver la lista de comandos disponibles de Docker:
Nos mostrará la lista de comandos que podemos utilizar desde la consola, si queremos información detallada y ejemplos de uso, en la página oficial están todos documentados: https://docs.docker.com/engine/reference/commandline/docker/#child-commands.
Por ejemplo, vamos a consultar la versión de Docker instalada con “docker version”:
Creando nuestra cuenta en Docker Hub
Aunque no es obligatorio, yo siempre recomiendo crear una cuenta Docker Hub para no tener problemas más tarde a la hora de descargar imágenes, ya que, algunas nos pedirán nuestras credenciales para descargarse en nuestro PC:
El proceso de registro es tan simple que no creo que sea necesario documentarlo: ir a la web de Docker Hub, simplemente registrarse y activar la cuenta desde el enlace que llegará a vuestro email.
Ejecutando nuestro primer container con Docker
El típico ejemplo en Docker consiste en ejecutar el contenedor “Hello World”. Para ello simplemente escribimos “docker run hello-world”. Como no tenemos la imagen previamente descargada, Docker es listo y se conecta al Hub para obtenerla y guardarla en nuestro PC. Después ejecuta el contenedor sobre la imagen descargada y finaliza el ciclo de vida del contenedor:
Con este simple ejemplo, verificamos que aparece el mensaje “Hello from Docker” indicando que ha descargado la imagen y ejecutado el contenedor de forma correcta.
Otro comando importante es “docker info”, que nos informa del estado actual de nuestro Docker: imágenes, contenedores, storage, CPU, memoria y mucha más información en pantalla que nos da una visión completa de todo:
Algunos comandos básicos útiles de Docker son:
- docker images: para ver la lista de imágenes descargadas.
- docker ps: para ver la lista de contenedores en ejecución.
- docker ps -a: para ver la lista de todos los contenedores ejecutados.
- docker rm: para borrar contenedores en nuestro equipo.
- docker rmi: para borrar imagenes en nuestro equipo.
- docker search: para buscar imágenes en el Docker Hub.
- docker pull: para descargar imágenes desde Docker Hub.
A partir de aquí, hemos visto cómo funciona Docker, evidentemente, de forma muy simple, con imágenes obtenidas desde el Docker Hub configuradas. Conforme vayáis conociendo Docker también aprenderéis a crear vuestras propias imágenes para publicarlas y optimizarlas en función de las necesidades de vuestros proyectos. En el portal de Docker está disponible toda la información como punto de partida recomendado: https://docs.docker.com/get-started
Como conclusión y primeras impresiones, Docker da muchísimo juego para crear entornos de desarrollo y pruebas en nuestro propio equipo para generar “contenedores entregables” y llevarlos a producción, aunque esta parte, ya no es tan trivial y se requiere experiencia y conocimientos DevOps.
¡¡Happy Docking!! Y si te ha gustado, ¡síguenos en Twitter para estar al día de más artículos!