Virtualización con Docker & Orange Pi Win Plus

Categoría: Orange Pi Creado: Lunes, 03 Julio 2017 Publicado: Lunes, 03 Julio 2017 Escrito por Francisco Javier Sánchez Gragera

En el artículo de hoy vamos a hablar sobre virtualización usando docker. Existen diferencias entre máquinas virtuales normales y docker, pero cubren necesidades similares. No pretendo escribir un curso, puesto que docker es muy extenso y ya existen tutoriales muy buenos en la web. Quisiera compartir el funcionamiento de docker en una Orange Pi Win Plus, explicando además qué imágenes podemos utilizar en ella.


¿Qué es Docker?

Es un sistema libre de virtualización a nivel de sistema operativo, que usa un sistema automático de despliegue de aplicaciones dentro de contenedores de software. Estos contenedores podríamos asemejarlos con máquinas virtuales, pero mucho más ligeras.

 

Docker Logo

 

Los contenedores docker aprovechan los binarios y librerías del sistema operativo anfitrión, y sobre dicho sistema host añade únicamente los paquetes necesarios para que el contenedor docker realice su función. Pese a compartir los archivos binarios del sistema operativo, el contenedor docker crea un nivel de abstracción y aislamiento, de tal forma que cada contendedor docker se puede considerar una máquina independiente y aisladas de las demás (a no ser que nosotros queramos crear una conexión entre ellas). A modo de ejemplo, una imagen de Ubuntu para VirtualBox puede sobrepasar 1 GByte de tamaño, mientras que para docker no llega a 200 MBytes. La gestión de procesador y memoria ram también es más efectiva en docker

 

Docker Vs VM

 


¿Por qué Orange Pi Win Plus?

Docker puede ser ejecutado por pc's con sistemas linux 64 bits de forma nativa, siendo recomendado el uso de Ubuntu Server 16.04 (está en fase beta para Ubuntu 17). También se puede ejecutar de forma no nativa en Windows y Mac-Os

En cuanto a arquitectura ARM, si habéis buscado en internet habréis encontrado ya tutoriales para Raspberry Pi, existiendo incluso distribuciones con docker preinstalado como Hypriot. Cómo en el campo de las Raspberry Pi no iba a aportar nada nuevo, decidí intentar hacerlo funcionar en la nueva Orange Pi Win, que tiene mucho potencial pero aún no está aprovechada a nivel de software.

 

Docker Vs VM

 

¿Por qué complicarse usando la Orange Pi Win Plus? Este nuevo modelo de Orange Pi tiene un procesador arm 64 bits superior a Raspberry Pi 3, y sobre todo cuenta con 2 GBytes de memoria Ram. La tarjeta de red funciona además a 10/100/1000, siendo en las Raspberry 10/100. Estas características hacen posible ejecutar varios dockers a la vez, de forma mucho más fluida que otros modelos con 1 GByte o 512 MBytes de memoria ram, y la comunicación será mucho más rápida.. ¡Ah si!, la orange pi win cuesta poco más de 30 euros en Aliexpress.

Lo aplicado en este artículo debe ser compatible también con otras placas ARM 64 bits de Allwiner. La Orange Pi Win usa el A64, mientras que las Orange Pi PC2, Prime y Zero Plus 2 usan el procesador H5. La diferencia entre ambos procesadores es la GPU, por lo que deberían funcionar las mismas imágenes docker para todas. Otros fabricantes como Pine o Banana Pi también usan dichos procesadores. Quizás alguno podáis hacer la prueba con estos modelos y añadir un comentario en el artículo con los resultados.


Preparación de Orange Pi Win Plus para Docker

Lo primero que debemos hacer es encontrar una distribución de Linux para Orange Pi Win Plus que funcione bien y cuyo kernel sea mayor que la versión 3.10. De todas las distribuciones que probé, Armbian Server fué la única que permitía instalar docker sin problemas. Si leísteis mi análisis de Orange Pi Win Plus recordaréis que las distribuciones de armbian para esta placa son todavía experimentales, y presentan fallos. Uno de los errores mas graves afectaba a la salida de vídeo HDMI, pero éste problema no nos va a afectar puesto que haremos un uso servidor de la Orange Pi y nos comunicaremos con ella por protocolo SSH.


Instalación de Armbian.

  1. Descargamos la imagen: En la sección de descargas buscamos Orange Pi Win Plus, dentro de imágenes experimentales (work in progress), y descargamos el archivo comprimido en 7z
  2. Escribimos la tarjeta microSD: Descomprimimos el archivo 7zip y obtenemos la imagen .img. Usando el programa win32diskimager seleccionamos el archivo de imagen, elegimos la unidad de la microSD y pulsamos "Write".
  3. Arrancar la Orange Pi Win Plus con la microSD: Extraemos la microSD con seguridad del PC y la introducimos en la Orange Pi. Conectamos el transformador de corriente y observamos que la Orange Pi arranca y se reinicia, durante este proceso la imagen que grabamos en la microSD se expande para ocupar la totalidad de la capacidad.
  4. Encontrar dirección de red: Armbian arranca con la red en modo dhcp. Para saber que dirección ip ha adquirido la Orange Pi Win podemos entrar en el panel de control de nuestro router y examinar los dispositivos. También podemos usar una herramienta de redes con nuestro móvil y examinar nuestra red doméstica, PingTools es una buena herramienta para teléfonos android, y la que yo uso.
  5. Conectamos vía SSH: Usando un cliente SSH para windows como Putty conectamos a nuestra Orange Pi Win, usando la dirección ip que encontramos anteriormente. El nombre de usuario para acceder es "root", y la contraseña por defecto "1234". En el primer log-in Armbian nos pedirá un cambio de contraseña para root.
  6. Comprobar kernel: Una vez identificados como root ejecutamos el comando "uname -a". Comprobamos con satisfacción que tenemos el kernel 4.11.1, muy superior al 3.10 requerido.

 

Armbian

 


Instalación de Docker.

Teniendo la versión correcta de linux, la instalación de docker es muy sencilla:

  1. Actualizamos paquetes del sistema: Siempre es bueno antes de instalar cualquier software. Ejecutamos "apt-get update && apt-get upgrade" en nuestro terminal ssh.
  2. Instalamos docker: Ya con los repositorios actualizados, ejecutamos el comando "apt-get install docker.io". Cuando se nos pregunte si queremos proseguir con la instalación contestaremos que si, pulsando 'y'.
  3. Comprobamos instalación de docker: Mediante el comando "docker info" se nos muestra los datos de nuestra instalación docker, que nos indica que se ha realizado corréctamente.

 

docker-info

 


Imágenes Docker para procesadores ARM 64 bits

Sería maravilloso poder usar cualquier imagen de Docker, pero lamentablemente si fueron preparadas para PC no nos van a funcionar en nuestra Orange Pi Win Plus, ni siquiera en una Raspberry Pi 3. Ésto es debido a que los binarios compilados para PC 64bits de ubuntu no son compatibles con procesadores arm, puesto que tienen arquitecturas completamente distintas.

Podemos hacer una sencilla prueba ejecutando el mítico "Hola Mundo". Existe una imagen docker estándar llamada hello-world, con su análogo para arm64 arm64v8/hello-world, dónde arm64v8 sería el autor de la imagen hello-world personalizada:

  • Si ejecutamos "docker run hello-world", la consola de docker nos va a devolver un error.
  • Si ésta vez probamos la versión del autor arm64v8, escibiendo "docker run arm64v8/hello-world", la imagen docker se ejecutará correctamente y nos devolverá la siguiente pantalla:

 

hello-world

 

Existe un repositorio de imágenes llamado Docker Hub, con buscador integrado. Debemos buscar en ésta página imágenes que contengan arm, arm64 o armhf. El autor arm64v8 del ejemplo anterior tiene bastantes imágenes con las que empezar, os lo recomiendo. Las imágenes semi-oficiales para raspberry del autor armhf también parecen ejecutarse correctamente.

Para experimentar un poco, y con ánimo de aprender para poder ofreceros otro artículo, estoy realizando mis propias imágenes. De momento he confeccionado tres imágenes. Joomla y Wordpress, imagenes listas para usar de los famosos CMS; y GLPI montado también sobre LAMP, una base de datos con interfaz web para gestión de inventarios informáticos. Podéis encontrar mis imágenes bajo el autor geekclusterpi.

 

docherhub

 

Creo que docker ofrece muchas posibilidades y merece la pena indagar. Dentro de poco espero compartir un artículo con ejemplos de uso, os animo a crear vuestras propias imágenes para ARM 64 bits y extender esta comunidad. ¡Hasta la próxima!


Siguiente: Virtualización con Docker. Comandos y ejemplos para procesadores ARM.

Visto: 698

Escribir un comentario


Código de seguridad
Refescar