Un retour critique sur Docker. Je n'ai encore jamais utilisé Docker, mais j'ai lu pas mal de trucs dessus comme c'est un projet qui est ultra à la mode (et c'est un projet Français !). Je partage un peu le point de vue de l'auteur au début de l'article : tout le monde en parle et dit que c'est trop bien, mais il faut se méfier des effets de mode et regarder ce que ça vaut vraiment. Le problème c'est que son jugement est complètement biaisé : il parle de la philosophie Docker «1 container, 1 process» et l'hérige en religion, en refusant de déroger à cette règle et se pleind de devoir faire des montages tordus pour respecter cette doctrine dans certains cas où elle n'a pas de raison d'être (journalisation, supervision …) et va même jusqu'à déclarer qu'il lui faut changer toute son architecture pour utiliser Docker «Making your application Docker compliant requires you to rethink the way it works. Since a Docker container runs with a single process». Mais c'est COMPLÈTEMENT FAUX ! Il est admis dans le monde Docker que les conteneurs doivent être le plus léger et atomique possible, mais il n'y a AUCUNE contrainte technique qui empêche de faire tourner tous les processus de la Terre dans le même conteneur. J'ai même déjà vu l'exemple d'un type qui se servait de Docker comme environnement de bureau lorsqu'il lançait des applications potentiellement malveillantes (du code propriétaire Microsoft ou Google par exemple). Un article qui explique bien pourquoi cette réligion du «1 container, 1 process» est débile et qui donne une autre interprétation du concept d'atomicité des conteneurs Docker :
https://blog.phusion.nl/2015/01/20/baseimage-docker-fat-containers-treating-containers-vms/
Autre exemple de débilité : «Dockerfile is a joke. It’s not even as complete as a built ins only shell script can be» : ça c'est VRAIMENT une grosse connerie comme remarque ! Évidemment qu'un Dockerfile n'est pas aussi complet qu'un script Bash : Bash est Turing-complet, donc tu peux faire ce que tu veux avec (même émuler un OS si tu es maso). À coté un Dockerfile est purement déclaratif (et n'est donc pas Turing-complet), du coup forcément un Dockerfile c'est moins «complet» qu'un script bash, mais la vrai question qu'il faut se poser c'est : Est-ce que c'est plus facile à écrire ? À lire ? À maintenir ? Et là la réponse est clairement oui. Après effectivement, les Dockerfile ont des manques (Templating notamment) et ils sont mentionnés dans une bonne partie des articles parlant de Docker, donc on peut espérer que les développeurs de Docker se décident un jour à écouter la communauté sur ce point et rajoutent cette fonctionnalité.