volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Retour dexp rience sur 10 ans de virtualisation
et pr sentation de Docker
Gauthier Catteau
Ing nieur Syst mes et R seaux
Responsable Infrastructure Syst me de lAcad mie de Lille.
13 f vrier 2014
Journ e Th matique Min2rien
http://www.min2rien.fr/
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Lignes directrices
1 volution des serveurs
2 Comparatif des solutions
3 Pr sentation de Docker
4 Fonctionnement basique de Docker
5 Et ensuite
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Introduction
Voila maintenant plus de 10 ans que nous virtualisons notre infrastructure.
Vmware, Proxmox et maintenant Docker, explication sur cette volution et
d couverte du petit dernier.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
volution des serveurs
Lignes directrices
1 volution des serveurs
volution des serveurs
2 Comparatif des solutions
3 Pr sentation de Docker
4 Fonctionnement basique de Docker
5 Et ensuite
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
volution des serveurs
R partition des serveurs physiques
80
60
40
20
0
Physique
Proxmox
Vmware ESX
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
volution des serveurs
R partition des serveurs virtuels
400
300
200
100
0
Vmware
OpenVZ
Docker
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
2003
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
La solution VMware
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
Lignes directrices
1 volution des serveurs
2 Comparatif des solutions
La solution VMware
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
3 Pr sentation de Docker
4 Fonctionnement basique de Docker
5 Et ensuite
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
La solution VMware
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
La solution Vmware est pour linstant incontournable pour les raisons
suivantes :
Leader du march .
Solution robuste et able.
Migration chaud efcace.
Excellente isolation des VM (NSA ?).
Inconvenients de la solution
Gestion relativement lourde des machines virtuelles compl tes (vmwaretools).
Co t de licence lev par CPU (> mat riel).
N cessit dun SAN pour une utilisation optimum.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
La solution VMware
Publicité
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
La solution Vmware est pour linstant incontournable pour les raisons
suivantes :
Leader du march .
Solution robuste et able.
Migration chaud efcace.
Excellente isolation des VM (NSA ?).
Inconvenients de la solution
Gestion relativement lourde des machines virtuelles compl tes (vmwaretools).
Co t de licence lev par CPU (> mat riel).
N cessit dun SAN pour une utilisation optimum.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
La solution VMware
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
Dans notre cas, Proxmox est une alternative int ressante pour plusieurs
raisons :
Performance proche de la machine physique.
Solution facile mettre en place.
Modication possible des chiers des VM teintes.
Sauvegarde et PRA plus rapides.
Virtualisation par conteneur. D marrage des VM tr s rapide.
Inconvenients de la solution
Migration chaud perfectible.
Pas de snapshot par VM.
Solution exible mais un peu artisanale.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
La solution VMware
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
Dans notre cas, Proxmox est une alternative int ressante pour plusieurs
raisons :
Performance proche de la machine physique.
Solution facile mettre en place.
Modication possible des chiers des VM teintes.
Sauvegarde et PRA plus rapides.
Virtualisation par conteneur. D marrage des VM tr s rapide.
Inconvenients de la solution
Migration chaud perfectible.
Pas de snapshot par VM.
Solution exible mais un peu artisanale.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
La solution VMware
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
Dans quels cas utiliser VMware
Serveurs avec applicatif n cessitant un support de l diteur.
Serveurs ne pouvant tol rer un arr t de production.
Dans quels cas utiliser Proxmox
Services redond s derri re des r partiteurs de charges.
Ou services moins critiques.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
La solution VMware
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
Dans quels cas utiliser VMware
Serveurs avec applicatif n cessitant un support de l diteur.
Serveurs ne pouvant tol rer un arr t de production.
Dans quels cas utiliser Proxmox
Services redond s derri re des r partiteurs de charges.
Ou services moins critiques.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
La solution VMware
La solution Proxmox (Openvz)
Conclusion sur ces 2 solutions
volutions possibles
tude des volutions possibles
Ces deux solutions fonctionnent mais la charge dexploitation reste lev e
pour quatre personnes. Les serveurs virtuels sont livr s dans la journ e,
mais il reste souvent beaucoup de r glages faire apr s livraison.
Do la recherche dune solution :
Facile mettre en Suvre.
Automatisable au maximum.
Identique pour le D veloppement, la Qualif, lExp rimentation et la Production.
De virtualisation applicative.
Bref une solution Cloud.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
Lignes directrices
1 volution des serveurs
2 Comparatif des solutions
3 Pr sentation de Docker
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
4 Fonctionnement basique de Docker
5 Et ensuite
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Publicité
Conclusion
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
Docker cest quoi ?
Docker est un projet open-source cr pour g n rer rapidement des
conteneurs portables pour toutes sortes dapplications.
Le m me conteneur peut tre utilis pour les d veloppements, les tests, sur
un portable, mis l chelle en production dans une VM, Openstack ou un
cloud public ...
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
Origine et premi re version
Docker est une r criture du code de dotCloud PaaS (Plateform As A Service).
Version dorigine en Python, maintenant r crite en Go.
Cest un projet jeune (janvier 2013), premi re release public 0.1 le 27 mars 2013.
Version 0.8 en f vrier 2014.
Utilis dans plus de 150 projets (OpenStack, CoreOS, Dokku, OpenShift...)
Dans le TOP10-2013 sur 10 millions de projet GitHub.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
Sur quoi est bas Docker ?
LinuX Conteneurs (LXC)
Control Groups et Namespaces
AUFS ou Btrfs (bient t ZFS)
API HTTP client-serveur
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
LinuX Conteneurs (LXC)
LXC permet :
De lancer un linux dans un linux.
Lisolation des processus et de lenvironnement dex cution.
Vu de dedans cest comme une VM.
Vu de dehors les process sex cutent normalement.
Pourquoi des Conteneurs ?
Vitesse : D marrage dans la seconde.
Empreinte : 100-1000 conteneurs par machine. Peu despace disque n cessaire.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
LinuX Conteneurs (LXC)
LXC permet :
De lancer un linux dans un linux.
Lisolation des processus et de lenvironnement dex cution.
Vu de dedans cest comme une VM.
Vu de dehors les process sex cutent normalement.
Pourquoi des Conteneurs ?
Vitesse : D marrage dans la seconde.
Empreinte : 100-1000 conteneurs par machine. Peu despace disque n cessaire.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
Control Groups et Namespaces
Le noyau Linux impl mente des fonctionnalit s permettant de limiter, disoler
et de contr ler les ressources suivantes :
CPU
M moire
I/O Disques
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Docker cest quoi ?
Origine de Docker
Sur quoi fonctionne Docker
LinuX Conteneurs (LXC)
Control Groups et Namespaces
Installation : Ubuntu Linux 12.04.3
Installation : Ubuntu Linux 12.04.3 64bits et suivantes
AUFS support
Le kernel 3.8 et suivants int grent le support LXC et AUFS/Btrfs n cessairent
pour Docker.
Ajout du d p t Docker
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36
A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/
sources.list.d/docker.list"
Installation
sudo apt-get update
sudo apt-get install lxc-docker
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Publicité
Fonctionnement basique de Docker
Et ensuite
Conclusion
Commande de base
Mode d tach
Conteneurs vs Images
Dockerle
Annuaire de conteneurs sur index.docker.io
Lignes directrices
1 volution des serveurs
2 Comparatif des solutions
3 Pr sentation de Docker
4 Fonctionnement basique de Docker
Commande de base
Mode d tach
Conteneurs vs Images
Dockerle
Annuaire de conteneurs sur index.docker.io
5 Et ensuite
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Commande de base
Mode d tach
Conteneurs vs Images
Dockerle
Annuaire de conteneurs sur index.docker.io
Le classique Hello World !
T l chargement dune image de base (ubuntu, centos, busybox ...)
$> docker pull ubuntu
Lister les images du syst me
images
$> docker
REPOSITORY
ubuntu
ubuntu
ubuntu
ubuntu
ubuntu
busybox
TAG
12.04
l a t e s t
p r e c i s e
12.10
q u a n t a l
l a t e s t
Afcher "Hello World"
IMAGE ID
8dbd9e392a96
8dbd9e392a96
8dbd9e392a96
b750fe79269d
b750fe79269d
e9aa60c60128
CREATED
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
VIRTUAL SIZE
128 MB
128 MB
128 MB
175.3 MB
175.3 MB
4.964 MB
$> docker run ubuntu:12.04 echo "hello world"
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Commande de base
Mode d tach
Conteneurs vs Images
Dockerle
Annuaire de conteneurs sur index.docker.io
Mode d tach
Lancer Docker en utilisant le ag -d
$> docker run -d ubuntu sh -c "while true; do echo hello world; sleep1; done"
R cuperer lid du conteneur
$> docker ps
CONTAINER ID
9d55d7d2c88d
IMAGE
ubuntu : 1 2 . 0 4
COMMAND
sh c w h i l e t r u e ; do
CREATED
16 seconds ago
STATUS
Up 15 seconds
Attacher la console au conteneur
$> docker attach <conteneur_id>
Stop/Start/Restart le conteneur
$> docker stop <conteneur_id>
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Commande de base
Mode d tach
Conteneurs vs Images
Dockerle
Annuaire de conteneurs sur index.docker.io
Diff rences entre Conteneurs et Images
Supprimer un chier dune image
$> docker run -d busybox rm /etc/passwd
Le chier est-il toujours l ?
$> docker run busybox cat /etc/passwd
root:x:0:0:root:/root:/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
Valider la nouvelle image
$> docker ps n=2
IMAGE
CONTAINER ID
busybox : l a t e s t
754b8e58437f
6c49f8cce911
busybox : l a t e s t
$> docker commit 6c49f8cce911 g a u t h i e r / brokenbusybox
COMMAND
c a t
rm / e t c / passwd
/ e t c / passwd
CREATED
16 seconds ago
About a minute ago
STATUS
E x i t 0
E x i t 0
Le chier est supprim dans notre nouvelle image !
$> docker run gauthier/brocken-busybox cat /etc/passwd
cat: cant open /etc/passwd: No such file or directory
Gauthier Catteau
Publicité
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Commande de base
Mode d tach
Conteneurs vs Images
Dockerle
Annuaire de conteneurs sur index.docker.io
Automatiser la cr ation avec les Dockerle
Docker permet dautomatiser la cr ation dimages qui pourront tre ensuite lanc es de multiples fois.
ubuntu:12.04
Cr ation dune image partir de limage ubuntu du d p t Docker.
Lancement de la cr ation avec la commande :
docker build -t repo/image-name chemin/du/DockerfileDir
FROM
MAINTAINER Monsieur Linux
ENV
RUN
ADD
EXPOSE
CMD
DEBIAN_FRONTEND noninteractive
apt-get update ; apt-get -y install nginx
my-vhost /etc/nginx/site-enable/
80
/etc/init.d/nginx start
chaque instruction Docker commit les changements dans une nouvelle image.
Si une image existe avec le m me parent et la m me commande, Docker utilisera limage en cache au lieu
dex cuter de nouveau linstruction.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Commande de base
Mode d tach
Conteneurs vs Images
Dockerle
Annuaire de conteneurs sur index.docker.io
Annuaire de conteneurs sur index.docker.io
T l chargement dune image sur lindex public
$> docker search apache
$> docker pull creack/apache2
Lancement du conteneur et v rication des ports
$> docker run -d creack/apache2
$> docker ps
Mappage des ports du conteneur sur lh te
$> docker run -d -p 8888:80 -p 4444:443 creack/apache2
$> docker ps
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Passage la vitesse sup rieure
Lignes directrices
1 volution des serveurs
2 Comparatif des solutions
3 Pr sentation de Docker
4 Fonctionnement basique de Docker
5 Et ensuite
Passage la vitesse sup rieure
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Passage la vitesse sup rieure
Passage la vitesse sup rieure
Il existe de nombreuses solutions cloud bas es sur Docker.
Flynn (Solution PaaS libre)
Deis (chef, Docker, nginx)
CoreOS (Mini OS avec Docker + etcd)
Openstack Docker (La solution Cloud OpenSource)
Redhat Openshift (La solution Cloud de Redhat)
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Avantages pour les d veloppeurs :
Un environnement propre, s r et portable.
Pas de soucis de d pendances manquantes.
Ex cution de chaque application dans son propre conteneur isol , ce qui permet
une ex cution avec diff rentes versions de biblioth ques.
Automatisation des tests, de lint gration et du packaging.
R duction/suppression des probl mes de compatibilit sur des syst mes
diff rents.
Avantages pour les AdminSys :
Cycle de vie des applications plus efcace, coh rente et reproductible.
Augmentation de la qualit du code produit par les d veloppeurs.
Suppression des incoh rences entre les environnements de d veloppement, de
test et de production.
Meilleure s paration des t ches.
Am lioration consid rable de la vitesse et de la abilit de d ploiement.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Avantages pour les d veloppeurs :
Un environnement propre, s r et portable.
Pas de soucis de d pendances manquantes.
Ex cution de chaque application dans son propre conteneur isol , ce qui permet
une ex cution avec diff rentes versions de biblioth ques.
Automatisation des tests, de lint gration et du packaging.
R duction/suppression des probl mes de compatibilit sur des syst mes
diff rents.
Avantages pour les AdminSys :
Cycle de vie des applications plus efcace, coh rente et reproductible.
Augmentation de la qualit du code produit par les d veloppeurs.
Suppression des incoh rences entre les environnements de d veloppement, de
test et de production.
Meilleure s paration des t ches.
Am lioration consid rable de la vitesse et de la abilit de d ploiement.
Gauthier Catteau
Docker
volution des serveurs
Comparatif des solutions
Pr sentation de Docker
Fonctionnement basique de Docker
Et ensuite
Conclusion
Questions ?
Des questions ?
Gauthier Catteau
Docker