• [^] # Re: L'enfer de la doc docker et des bonnes pratiques

    Posté par (site web personnel) . En réponse au journal Revue de livre: Docker, prise en main et mise en pratique sur une architecture micro-services. Évalué à 5.

    La doc officielle est pas mal, mais elle est totalement insuffisante pour faire des déploiements dans la vraie vie

    C'est en partie parce que docker n'est que la partie conteneur, pas orchestration (si on oublie swarm). Donc forcément tu n'aura pas les infos sur tout.

    • comment faire des Dockerfile en respectant les bonnes pratiques

    Pour ça, j'utilise principalement deux techniques:

    • utiliser des linter sur Dockerfile (genre hadolint mais il y en a d'autres) : ça ne va pas te présenter les bonnes pratiques mais tu pourra au moins valider ce que tu écris (et tu peux aller voir tout la liste des règles)
    • lire les Dockerfile d'autres personnes, par exemple ceux de Jessie Frazelle mais il y en a plein d'autres
    • comment tester des Dockerfile en local sans avoir trop d'écart avec ta prod

    Tout dépend ce que tu veux tester vraiment.
    Pour ce qui est des images en elles-même, tu peux chercher du côté de Container Structure Test par exemple.
    Ensuite, je sais pas bien ce que c'est "tester des Dockerfile". Si ton conteneur contient toute ton app, ben tu testes en prod comme ailleurs. Si la question c'est comment tester une application composée de plusieurs services (sous forme de docker) s'en est une toute autre et la réponse peut être beaucoup plus complexe (docker ou non d'ailleurs).

    • comment écrire des unit systemd pour démarrer les containers, avec gestion des dépendances entre containers sur une même machine

    Ok, donc ça s'est purement systemd, que ce soit des containers ou non ne devrait pas changer grand chose. Je ne sais pas si on trouve de la doc dessus facilement. Je limite au max les units systemd que j'écris, et j'utilise un orchestrateur pour le reste. Et j'évite qu'il y ait des dépendances entre les conteneurs, que chaque service puisse démarrer sans que les autres soient disponible.

    • comment scripter le déploiement et la mise à jour de containers sur un petit lot de serveurs, proprement

    Je dirais, ne pas le faire.
    Les orchestrateurs sont là pour ça. Et nomad c'est bien.

    • bonnes et mauvaises pratiques d'administration système avec Docker sur une petite install (moins de 5 serveurs)

    On parle de docker ou d'orchestration de conteneurs ? (et donc k8s, nomad, mesos, swarm)