Depuis que mon espace "/var" grossissait sans prévenir, je me suis dit, ca serait quand même bien de voir ce que prends lxd comme place, et même plus précisément chaque container :

sudo du -sh /var/snap/lxd/common/lxd/containers/*/rootfs

Ce qui me laisse à penser que prendre ubuntu ou fedora pour des micro services, c'est pas forcement léger. J'ai essayé Alpine Linux, qui est certes beaucoup plus light (1/50eme), mais pour laquelle beaucoup de choses changent par rapport à une Ubuntu :

exemples :

- bind est lancé en tant que user "named" dans alpine et "bind" dans ubuntu - les chemins de bind sont totalement différent, idem pour la structuration de la configuration - systemctl n'existe pas - bon, la je pinaille, mais c'est pas "apk install" (comme apt install) mais "apk add" - "service openvpn@servername start" ne fonctionne pas, il ne peut être que "service openvpn start"

Bref, beaucoup de petits détails d'administration présents dans certaines distribs, sont ici faites totalement différemment. Je ne dirais pas que c'est moins bien ou mieux, juste différent. Il y'a surement encore beaucoup de différences, mais c'est vrai que pour du micro-services, les gains en tailles apportés par Alpine sont WAOUH :

65M	/var/snap/lxd/common/lxd/containers/openvpn/rootfs
1,1G	/var/snap/lxd/common/lxd/containers/redis/rootfs
  • openvpn est un container Alpine contenant la configuration d'un openvpn et des scripts d'administration
  • redis est un container Ubuntu ne contenant qu'une installation additionnelle des paquets redis

Ca parle de soit ! Maintenant si la taille n'est pas un problème, je préfèrerais une ubuntu (écosystème, préférence personnelle ...), mais Alpine est très utilisé par beaucoup de containers docker sur le hub, ce qui atteste de sa validité pour ces usages.