Docker
Définition:
Outil d’empaquetage d’une application et toutes ses dépendances dans un environnement isolé.
Avantages:
+ Moins de ressources dépensées et démarrage plus rapide en comparaison avec une machine virtuelle(Virtualbox, Parallels Desktop …)
+ Isolation: les dépendances et configs d’un conteneur n’ont aucun impact sur le système hôte ou autres conteneurs
+ Reproduction: un conteneur est garanti identique quelque soit l’OS et permettant aux devs. de se concentrer uniquement sur leur code.
+ Maintenance & tests: gain de temps pour la màj d’un environnement dans le cloud & même sur de nombreux serveurs. En efft, dans un contexte multi-serveur, il n’est pas toujours facile de màj des environnements complexes. Il faudrait màj chaque env. de chaque OS puis les envs. et bdd et le tout dans l’odre sans oublier les serveurs.
+ Bonnes pratiques grâces aux images open source: les images officielles de Docker Hub permettent de lancer des conteneurs fiables très rapidement et sans avoir à les configurer soit même.
Principes des conteneurs Docker
Ils sont:
- felxibles: n’importe quelle appli. peut être conteneurisée(dockerisée)
- légers: plus légers que les VMs classiques car ils partagent les ressources & noyau Linux de l’OS hôte
- portables: utilisables sur n’importe quel env.(OS) et en local ou cloud
- couplage faible: du fait de leur isolation, les conteneurs sont autonomes. oOn peur les supprimer, ajouter, modifier sans risques d’impact sur les autres conteneurs
- scalaires: on peut déployer des centaines voir des milliers de conteneurs en quelques minutes sur un très grand nombre de serveurs. Ils permettent aussi d’automatiser le déploiement de nouveaux conteneurs.
- sécurisés: l’isolation des conteneurs apporte une grande sécu. des environnements déployés.