Introducción

Si has llegado hasta aquí apuesto que es porque trabajas con Windows o Mac y te ha salido un mensaje como el de esta imagen.

Docker Desktop advirtiendo del cambio de licencia

Donde dice que Docker Desktop ya no es gratis para empresas como la tuya en las que trabajáis más de 250 personas y/o factura más de 10 millones al año y el período de gracia del 31 de Enero de 2022 ha expirado.

Así que no te queda otra que pagar la suscripción para poder seguir usando la herramienta o seguir este tutorial para saber cómo montarte tu propio Docker Desktop.

O, si nada te ata a Windows o Mac, lo mejor que puedes hacer es pasarte a Linux y disfrutar de todos sus ventajas de forma nativa.

Vamos al lío

Creación de la máquina virtual con Ubuntu Server

Lo primero que debes saber es que Docker solo corre libre como el viento en sistemas operativos Linux, por lo que vas a necesitar una máquina virtual que corra Linux en tu Windows o Mac.

Esto es exactamente lo que hace Docker Desktop y, de ahí que en las preferencias puedas dar más o menos RAM a Docker Desktop, es decir, a la máquina virtual que te monta.

Así que, para continuar, necesitamos descargar el siguiente software:

  • Virtualbox – https://www.virtualbox.org/wiki/Downloads – gestor de máquinas virtuales. Si ya tenías Docker Desktop es bastante posible que lo tengas ya instalado, aunque te aconsejo actualizar a la última versión disponible.
  • ISO de Ubuntu 20.04  Server https://ubuntu.com/download/server. La imagen del sistema operativo que vamos a instalar. Como no vamos a necesitar interfaz gráfica lo mejor es instalar la versión server.
  • Lens – https://k8slens.dev/. Herramienta para gestionar de forma gráfica cualquier cluster de Kubernetes.

Página de descarga de Ubuntu Server

Una vez descargado el software, vamos a crear nuestra máquina virtual con Ubuntu donde poder instalar Docker y Kubernetes.

Para ello ejecutamos Virtualbox y pulsamos en «New».

Botón New en Virtualbox

Le damos un nombre a nuestra máquina virtual, seleccionamos que va a ser de tipo Linux Ubuntu 64 bits y pulsamos en «Continue».

Establece el nombre de la máquina virtual

Establecemos la cantidad de memoria RAM que va a quedar «secuestrada» por nuestra máquina. Aquí lo aconsejable es dar la mayor cantidad posible dentro de los límites de nuestra máquina, dado que Docker y Kubernetes necesitan mucha RAM. Pulsamos en «Continue».

Selección de cantidad de memoria

En el siguiente paso seleccionamos la opción de crear un nuevo disco virtual para nuestra máquina y pulsamos en «Create».

Creación de disco duro virtual

En el tipo de disco duro dejaremos seleccionado VDI y pulsamos en «Continue».

Selección de tipo de disco duro virtual

Seleccionamos que va a tener un almacenamiento dinámico y pulsamos en «Continue».

Selección de tipo de almacenamiento

En el siguiente paso establecemos la ruta del fichero y el tamaño que le queremos dar al disco duro de nuestra máquina virtual. En este caso se aconseja dar bastante capacidad, ya que las imágenes de Docker ocuparán bastante espacio en función del uso que se les vaya a dar. Pulsamos en «Create» para finalizar el proceso.

Establecer tamaño de disco duro

Establecer la interfaz de red

Para que nuestra máquina Mac o Windows se pueda comunicar sin problemas y con una IP fija con nuestra máquina virtual, es necesario crear una interfaz de red.

Desde Virtualbox pinchamos en «Tools» y seguidamente «Network».

Selección de la opción Network

Ahora pinchamos en «Create».

Crear interfaz de red

Esto hace que se añada un entrada con la nueva interfaz, en la cual vamos a habilitar el check de DHCP Server.

Habilitar DHCP Server

Configurar las preferencias de la máquina virtual

Para configurar las preferencias, pulsamos en «Settings».

Selección de la opción Settings

Dentro de «Settings» nos vamos a «Network», el «Adapter 1» lo dejamos en NAT y habilitamos el «Adapter 2» de tipo «Host-only Adapter» con el nombre «vboxnet0», que es la interfaz de red que creamos en pasos anteriores. Hecho esto pulsamos en «OK».

Configurar adaptador de red

Arrancamos la máquina virtual

Para arrancar la máquina virtual tenemos que pulsar dos veces sobre la máquina.

Arranque máquina virtual

Es posible que en Mac aparezca este mensaje, indicando que hay que añadir Virtualbox dentro de «Accesibility», cosas que solo pasan en Mac. Para ello pulsamos en «Open System Preferences».

Advertencia accesibilidad en Mac

Desbloqueamos el candado de abajo con nuestra contraseña del equipo y dentro de «Accessibility» – «Privacy» marcamos «Virtualbox».

Configuración preferencias en Mac

Después de hacer esto, veremos la siguiente pantalla donde poder seleccionar la ISO de Ubuntu, que ya tenemos que tener descargada. Una vez seleccionado el fichero, pulsamos en «Start» para arrancar la máquina virtual.

Selección del sistema operativo

 

Configuración del sistema operativo virtual

Ahora tenemos que configurar nuestro Ubuntu Server desde cero. Lo primero que nos pregunta es por el lenguaje. A mi me parece buena idea tenerlo en Inglés, pero aquí es a elección vuestra. Una vez seleccionado pulsamos en «Enter».

Selección de lenguaje

La siguiente pantalla nos detecta los interfaces de red que tenemos configuradas. Aquí es muy importante quedarse con la IP de la interfaz enp0s8, en mi caso, 192.168.56.3, pero podría variar en vuestro caso.

Visualización de las interfaces de red

La siguiente pantalla es importante. En caso de que estéis detrás de un proxy tendréis que poner aquí la URL adecuada.

Configuración de proxy

En la siguiente pantalla, se establece el mirror por defecto para poder descargar paquetes de Ubuntu. Se puede quedar por defecto, y avanzar al siguiente paso.

Selección de mirror

En la siguiente pantalla nos permite seleccionar todo el disco virtual para ser formateado acorde a la instalación del sistema operativo.

Selección de particionado

Confirmamos la operación.

Confirmamos la operación

Creamos el usuario administrador de la máquina. Aquí puedes poner los datos que consideres adecuados.

Crear cuenta administrador

Es importante indicar que queremos instalar OpenSSH para poder acceder a nuestra máquina virtual desde el terminal de Mac o Windows.

Instalar OpenSSH

También vamos a indicar que queremos instalar microk8s (cluster de Kubernetes) y Docker.

Instalar microk8s y docker

Con esto comienza la instalación del sistema operativo en nuestra máquina virtual, la cual tardará unos minutos. Cuando finalice se mostrará la opción de «Reboot Now».

Pantalla fin de instalación

Acceso a la máquina virtual desde terminal

Abrimos un terminal y nos conectamos vía SSH con nuestro Docker Desktop con la IP que vimos que la máquina host nos había asignado.

$> ssh owndockerdesktop@192.168.56.3

Una vez dentro, podemos ejecutar cualquier comando de Docker como por ejemplo:

$> docker images

Si nos encontramos un error de este tipo:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get «http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json»: dial unix /var/run/docker.sock: connect: permission denied

Debemos ejecutar el siguiente comando para poder ejecutar los comandos de Docker sin sudo.

$> sudo chmod 666 /var/run/docker.sock

Ahora, para comprobar que efectivamente podemos trabajar con Docker, vamos a levantar un servidor de nginx con el siguiente comando:

$> docker run -d -p 8888:80 nginx

Y desde nuestro navegador navegamos a la URL: http://192.168.56.3:8888, con lo que tenemos que ver el mensaje de bienvenida de nginx, certificando que ya podemos trabajar con Docker.

Conectar con el cluster de Kubernetes

Por último, para poder conectar con nuestro cluster de Kubernetes vamos a ejecutar el siguiente comando, a fin de obtener la información de conexión.

$> microk8s config view

Copiamos el contenido que aparezca por pantalla y lo pegamos en el fichero ~/.kube/config de nuestra máquina host, en mi caso, del Mac; modificando la IP 10.15.0.2 por la IP de nuestra máquina virtual, en mi caso, 192.168.56.3.

Ahora abrimos Lens.

Pantalla principal Lens

Pulsamos en + y por defecto ya nos tomará la información del fichero ~/.kube/config, con lo que solo tenemos que pulsar en «Add cluster».

Añadir el cluster a Lens

Hecho esto veremos cómo Lens se conecta a nuestro cluster y podemos ver y trabajar con todos los elementos del cluster.

Conclusiones

Obviamente Docker Desktop ofrece una interfaz gráfica que no tenemos con esta solución, pero esta solución es suficiente para poder trabajar con Docker y Kubernetes en Mac y Windows.

Simplemente tenemos que levantar la máquina virtual cada vez que queramos levantar algún contenedor con Docker y trabajar con el cluster de Kubernetes.

Espero que te aporte valor.