[FR] Support de présentation utilisé à $WORK pour présenter docker (avec démos au milieu via wetty, miam!). Source dispo sur demande, si ça intéresse quelqu'un je mettrai sur Github.
très très amélioré" • un ou plusieurs process isolés du reste du système, mais pas un système complet • plusieurs implémentations depuis longtemps: BSD Jails, Solaris Zones, Linux OpenVZ, Linux LXC • plus récemment: Docker 2
(Heroku) ou SaaS • mutualisation d'applications hétérogènes • tests unitaires • optimisation de coûts (Google) • gestion d'un pipe de développement → recette → préprod → prod • → la techno est à exploiter selon ce qu'on veut faire 4
automatise le déploiement d'applications dans des conteneurs logiciels." (wikipedia) • Projet opensource, 2013, écrit en Go • Très actif (sur github: 12k stars, 2k forks, 400+ contributeurs uniques) • A l'origine : • LXC + AUFS • fonctionnalités de dépôt (images) • client / serveur (APIs HTTP) 6
userland pour gérer des conteneurs: • Namespaces (ipc, uts, mount, pid, network and user), capabilities • Apparmor et SELinux ; politiques seccomp • Chroots (via pivot_root) • Control groups (cgroups) Sauf qu'on va pas utiliser ça : instable, insuffisant, API moisies, support distrib très variable, ... => remplacé depuis docker 0.9 par "libcontainer" qui fait la même chose, même plus, mais en clean 12
les "unions" : /dir1 + /dir2 => /dir • supporte le copy-on-write • permet de faire des "couches de filesystems" (= layers) Sur les vieux noyaux (Redhat. Debian?) : remplacé par device-mapper 13
: sécurité++, complexité-- • moyen naturel, indépendant de la techno, pour mutualiser des applications • gestion fine des ressources si besoin (cgroups) • gestion des images (construction, dépôt, images dérivées, ...) • génération de conteneurs depuis ces images • couches ! upgrades / rollbacks facilités • API autour de tout ça • performances natives (cpu, mémoire, disque, réseau) 15
(logs, layers, réseau, confs) • pas encore de gestion prod-ready et générique de la haute dispo : • process / ~chroot ! passer d'un serveur à l'autre n'est pas simple • à venir: CRIU • en attendant: VMs ou HA externe (LB, Heartbeat-likes) • quelques instabilités AUFS • couche réseau à étudier 17
p t - g e t i n s t a l l d o c k e r . i o • sous OSX: client natif, serveur via une VM proxy (Tiny Core Linux préinstallée, <10M) • sous Windows: via VirtualBox/Vmware Player 18