Présenté à Softeam par Daniel CHAFFIOL.
Vous êtes en mission chez un client, et vous devez proposer une solution basée sur Docker!
Mais Docker en 2017 a considérablement évolué (Swarm, Kubernetes, containerd, runc, …) depuis son début (mars 2013).
Cette présentation vous propose un rapide tour d’horizon de Docker en 2017, et insiste sur les points/pièges à connaître lorsque vous recommandez une solution "Docker", en mission chez un client.
En plus des slides, vous aurez accès à un article complet détaillant ce que je présenterai, avec de nombreux liens vers des articles.
L’isolation du Container n’est pas préemptive. Par exemple, l’espace "alloué" est tout d’abord une indication ; il n’est pas consommé par défaut, contrairement à 1 VM
📎
|
Hyper-V est le gestionnaire de VMs (et de Containers) de Windows 10 |
❗
|
Contrairement à ce que je pensais, Docker for Windows (10 Pro) va installer une toute petite VM Linux sur l’Hyper-V (MobiLinuxVM) |
-
2013 : Docker était un simple exe provenant de Go Lang.
-
2016 : dockerd (daemon Docker même) séparé de containerd (daemon gérant les container) depuis 2016 : depuis Docker 1.12 en 2016
Auparavant, si on voulait mettre à jour Docker, il fallait aussi killer tous les containers…📎Rappel : Plusieurs containers peuvent tourner au sein d’un même Docker daemon. -
2017 : Apparition de Moby
Nom du projet Open Source gérant toutes les briques composant Docker. Ajoute un aspect modulaire à Docker :
Moby → Docker CE → Docker EE
Manages containers above different nodes.
DevOps est avant tout une culture.
Execution environment :
-
Docker Registry
-
ACL (Access Control List) ou RBAC avec Docker
-
deployment
-
monitoring
-
reporting
Chercher sur Google "Docker Root please"…
On tombe sur une image donnant, en 1 ligne, les droits roots sur la machine hébergeant les containers.
Il est donc IMPERATIF de mettre en place des contrôles sur les images pour être récupérées.
|
Attention aux images Docker qui installent des fichiers en root sur le file system du host, ou qui créent de nouveaux utilisateurs sur la machine host. Généralement les accès aux machines sont tracés, avec des utilisateurs bien définis. Les nouveaux utilisateurs précédents vont donc lever de nombreuses alertes… |
L’écosystème Docker évolue très vite ! Faire attention aux versions fournies par les plateformes éditeur (ex : Suze avec CASP - Container as a Platform)
Daniel nous parle également de clients mettant en place des VMs installées par Vagrant qui lancent des containers Docker.
Gestion des volumes : de plus en plus de solutions proposent leur propre driver de volume pour persister la couche Read / Write du container (qui est normalement perdue au redémarrage du container)
Trend :
-
Build: Maven (pom.xml)
-
Compilation: Jenkins 2.X (Jenkinsfile)
-
Integration: Docker Composer (.yml)
-
Deployment: Kubernetes
Pour toutes ces étapes, on retrouve une configuration par fichier texte. (bien pratique)
-
slides (avec notes non visibles dans la présentation) disponibles sur GitHub, GitPitch et sur l’Intranet
-
play-with-docker.com / play-with-k8s.com, voir les slides pour récupérer les autres liens.