Barebone Docker avec une Raspberry Pi

Une Raspberry Pi ce n’est pas forcément très sexy, ni très WAF. On va souvent entendre : à quoi ça sert ? tu en as vraiment besoin ? tu en as déjà 50 ! etc. Là faut trouver l’argument imparable. Et pourquoi pas un barebone Docker ? 

François Tonic, rédacteur en chef Programmez! & cloudmagazine.fr

Bon OK, dit comme ça, ce n’est peut-être pas un argument très percutant pour faire accepter sa Pi 3. Mais franchement, avoir une Pi sans vraiment savoir qu’en faire, c’est un peu embêtant. L’idée de ce prototype m’est venue lors d’une session Docker à la conférence Devoxx France 2016 et en cherchant un peu, on trouve quelques tutoriels ici et là.

Rappelons que la Raspberry Pi est architecturée sur un processeur ARM et non x86. Ce qui signifie que vous devrez obligatoirement utiliser un système Linux pour ARM et une version de Docker pour cette architecture matérielle. Le CPU de la Pi est 64 bits, donc pas de souci. Mais nous verrons que le processeur ARM limite beaucoup les possibilités.

Pour commencer, il vous faut :

1 Raspberry 3

1 connexion Ethernet (préférence Ethernet)

1 carte SD 32 Go minimum

1 moniteur servant de console

1 PC ou un Mac pour l’administration (via openSSH) 

Hypriot

Tout d’abord, il nous faut une distribution Linux ARM. Il existe plusieurs solutions. La première est la distribution Hypriot. Vous devrez tout d’abord télécharger l’image complète puis copier le contenu sur la SD. Attention : utiliser un outil dédié ou passer par les commandes Terminal. Démarrez la Pi avec la SD insérée. La distribution va alors se charger. Le démarrage prend quelques minutes.

Dans notre Terminal, il suffira d’utiliser la commande :

ssh pi@black-pearl.local.

Le mot de passe sera demandé, par défaut, il s’agit de : raspberry. Si tout va bien, la commande docker info affichera les informations sur l’état de Docker s’exécutant sur la Pi (nombre de conteneurs, images, CPU, etc.). Votre carte est désormais un mini-serveur de conteneurs.

Pour tester si tout est OK, vous pouvez faire un simple :

docker run -d -p 80:80 hypriot/rpi-busybox-httpd

Sur un navigateur, tapez l’adresse IP de votre Pi (vous devrez trouver facilement l’information dans les lignes affichées dans le Terminal). Et si tout se passe bien, votre premier test Docker est un succès : Armed with Docker by hypriot…

Pour la partie administration, vous pouvez continuer à utiliser le Terminal ou déployer un outil de type DockerUI :

docker pull hypriot/rpi-dockerui

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock hypriot/rpi-dockerui

Sur votre navigateur il suffira de taper :

http://[IP Pi]:9000

L’équipe Hypriot propose plusieurs images Docker qui fonctionnent relativement bien, idéal pour les premiers tests. Sur le Docker Hub, vous trouverez plusieurs dizaines d’images pour votre Raspberry Pi, mais attention, la qualité de ces conteneurs est très variable et leur maintenance n’est nullement garantie. Il existe très peu d’images officielles pour AR 

Lubuntu

Autre distribution, basée sur Ubuntu, est la Lubuntu (merci à Estelle pour la référence). Comme pour toutes distributions, on flashe sa carte SD avec l’image du système. Le système est plus lent que Hypriot, à cause de l’interface graphique, mais cela reste correct. Docker est activable très facilement via un simple sudo get-apt install docker.io.

La pile semble plutôt stable d’après nos tests initiaux, peu de problèmes comme nous avons pu en rencontrer sur d’autres distributions et cartes comparables à la Pi, parfois, Docker y est totalement inutilisable. Les images hypriot fonctionnent sur Lubuntu. Cette distribution est plus intéressant que Hypriot.

Un bon potentiel, mais limité

Le duo Pi + Docker est plutôt efficace. Vous aurez accès à l’ensemble des fonctions et commandes Docker. Cependant, vous serez limité par les capacités de la Pi, en performances et stockage. Un stockage supplémentaire sera nécessaire, n’oubliez pas de changer le répertoire de stockage par défaut de Docker (indispensable si vous utilisez un disque PiDrive sur votre Pi 3 par exemple). Si vous souhaitez utiliser de nombreux conteneurs, optez pour un cluster Docker (que nous n’avons pas testé mais plusieurs projets existent). Nous avons constaté, en usage intensif, une chauffe assez élevée de la carte. Mais il est parfaitement silencieuse. La limitation à 1 Go de la mémoire vie est un réel handicap pour mettre en production votre barebone avec x conteneurs. Pour un usage limité, un petit serveur, c’est parfait. Pour le prix d’une Pi 3 (ou équivalent comme l’ODROID-C2), l’occasion est trop belle pour ne pas tester, voire, mettre en production, si vos besoins ne sont pas trop exigeants.

Comme nous l’avons dit plus haut, vous êtes sur une architecture ARM et donc impossible faire fonctionner des conteneurs x86, ni les migrer, et le catalogue sera limité et d’une qualité variable.

Site officiel : http://blog.hypriot.com

Projet Pi + Docker : http://blog.xebia.com/docker-on-a-raspberry-pi/

Créer un cluster Swarm : http://blog.hypriot.com/post/how-to-setup-rpi-docker-swarm/

Lubuntu : https://ubuntu-pi-flavour-maker.org/download/

 

 

 

 

 

 

 

 

Go to Source