PPrréésseennttaattiioonn ddee DDoocckkeerr..iioo 
par Nicolas Hennion 
lors de la Commission Open-Source 
de la Telecom Valley du 11 septembre 2014
Qui a déjà 'Docker' 
dans l'assistance ?
Définition en une phrase 
'' Docker est une solution 
permettant d'exécuter un ou 
plusieurs logiciels dans des 
environnements séparés (conteneurs) 
pouvant communiquer entre eux. ''
Vous avez dit conteneur ?
Conteneur à la mode Docker ? 
Un conteneur propose: 
● un espace isolé permettant d'exécuter des processus 
La plupart du temps 1 conteneur = 1 application 
● un accès r00t 
On peut faire ce que l'on veut. Même casser son conteneur ! 
● une adresse IP 
Pour communiquer avec le reste du monde & autres 
conteneurs
Le Saint Graal des DevOps 
Quand un adminsys met un logiciel en production... 
Par sa nature Docker assure que le conteneur utilisé en 
développement fonctionnera de la même manière en 
production.
Son objectif en une phrase 
Le but ultime de Docker est de minimiser le temps et les 
infrastructures entre le développement, les tests, le 
déploiement et l'utilisation en production.
Qui l'utilise ? 
● Rackspace 
● Red Hat 
● IBM 
● Google 
● Spotify 
● Amazon 
● Ebay 
● Twitter 
● Facebook 
● ...
De quoi parlons nous ? 
● Logiciel Open-Source (licence Apache 2) 
● Développé en langage Go 
● Service en ligne (Docker.io) 
● Communauté importante et active (DockerCon) 
● Solomon Hykes 
est le fondateur 
et l'actuel CTO de Docker.io
Pourquoi faire ? 
● Plate-forme de développement souple 
● Intégration continue 
● Déploiement/mise en production 
● Plate-forme PaaS
Un peu de technique 
● Docker est une solution de virtualisation légère basée sur 
des conteneurs (containers) 
● Un conteneur est un environnement d'exécution isolé 
(vraiment) avec ses propres ressources 
● Tous les conteneurs utilisent le même noyau qui est celui 
de la machine hôte 
● Docker se basait uniquement sur le noyau Linux et ses 
technologies LXC, namespaces et cgroups puis sur 
libcontainer depuis la version 0.9
Virtualisation vs Containers 1/2 
● Virtualisation (émulateur) ● Containers (isolateur)
Virtualisation vs Containers 2/2 
● Virtualisation classique 
+ fléxible: émulation 
complète ou partielle d'une 
machine sur une autre 
- coûts de mise en oeuvre 
- instance consommatrice 
en ressources 
● VMWare, Xen, VirtualBox, 
KVM, Hyper-V… 
● Containers ou virtualisation légère 
+ coûts de mise en oeuvre 
+ rapidité de lancement 
des environnements 
- fléxibilité (virtualisation de 
l'environnement 
d'exécution, pas de la 
machine) 
● OpenVZ, Vserver, Jail et… 
Docker
Virtualisation au régime 
● Un PC portable peut faire tourner jusqu'à 100 conteneurs 
● 1000 conteneurs sur un serveur 
● A l'intérieur des conteneurs, les logiciels tournent aussi vite 
que si ils étaient lancées sur l'OS hôte. 
● Les opérations sur les conteneurs se font dans la seconde
Mais... 
''Je fais cela depuis 15 avec Jail sous BSD'' 
Signé: un barbu anonyme 
● C'est en partie vrai mais Docker apporte nativement: 
– un environnement d'administration des conteneurs avec 
notamment le build basé sur les DockerFiles 
– la gestion en version des conteneurs 
– une registry pour stocker ses images/conteneurs 
– une API REST 
● Docker est donc plus une surcouche aux solutions comme Jail 
ou OpenVZ
Plutôt qu'un long discours... 
run 
Image Conteneur 
pull build 
DockerFile 
push 
Docker.io 
save 
pull 
ou Private Registry 
RReeppoossiittoorryy 
Conteneur 
Conteneur 
DDeevv 
IInnffrraa 
PPrroodd 
commit 
AAIIVV ((ooppttiioonnnneellllee))
Comment installer Docker ? 
● Sur sa machine de developpement: 
– GNU/Linux: Nativement (package manager) 
– BSD, Mac OS, Windows: Via VM boot2docker (25 MB) 
● Sur son serveur GNU/Linux 
– Nativement (package manager) 
– Distrib dédiée: CoreOS
Une petite démonstation...

Introduction à docker.io

  • 1.
    PPrréésseennttaattiioonn ddee DDoocckkeerr..iioo par Nicolas Hennion lors de la Commission Open-Source de la Telecom Valley du 11 septembre 2014
  • 2.
    Qui a déjà'Docker' dans l'assistance ?
  • 3.
    Définition en unephrase '' Docker est une solution permettant d'exécuter un ou plusieurs logiciels dans des environnements séparés (conteneurs) pouvant communiquer entre eux. ''
  • 4.
    Vous avez ditconteneur ?
  • 5.
    Conteneur à lamode Docker ? Un conteneur propose: ● un espace isolé permettant d'exécuter des processus La plupart du temps 1 conteneur = 1 application ● un accès r00t On peut faire ce que l'on veut. Même casser son conteneur ! ● une adresse IP Pour communiquer avec le reste du monde & autres conteneurs
  • 6.
    Le Saint Graaldes DevOps Quand un adminsys met un logiciel en production... Par sa nature Docker assure que le conteneur utilisé en développement fonctionnera de la même manière en production.
  • 7.
    Son objectif enune phrase Le but ultime de Docker est de minimiser le temps et les infrastructures entre le développement, les tests, le déploiement et l'utilisation en production.
  • 8.
    Qui l'utilise ? ● Rackspace ● Red Hat ● IBM ● Google ● Spotify ● Amazon ● Ebay ● Twitter ● Facebook ● ...
  • 9.
    De quoi parlonsnous ? ● Logiciel Open-Source (licence Apache 2) ● Développé en langage Go ● Service en ligne (Docker.io) ● Communauté importante et active (DockerCon) ● Solomon Hykes est le fondateur et l'actuel CTO de Docker.io
  • 10.
    Pourquoi faire ? ● Plate-forme de développement souple ● Intégration continue ● Déploiement/mise en production ● Plate-forme PaaS
  • 11.
    Un peu detechnique ● Docker est une solution de virtualisation légère basée sur des conteneurs (containers) ● Un conteneur est un environnement d'exécution isolé (vraiment) avec ses propres ressources ● Tous les conteneurs utilisent le même noyau qui est celui de la machine hôte ● Docker se basait uniquement sur le noyau Linux et ses technologies LXC, namespaces et cgroups puis sur libcontainer depuis la version 0.9
  • 12.
    Virtualisation vs Containers1/2 ● Virtualisation (émulateur) ● Containers (isolateur)
  • 13.
    Virtualisation vs Containers2/2 ● Virtualisation classique + fléxible: émulation complète ou partielle d'une machine sur une autre - coûts de mise en oeuvre - instance consommatrice en ressources ● VMWare, Xen, VirtualBox, KVM, Hyper-V… ● Containers ou virtualisation légère + coûts de mise en oeuvre + rapidité de lancement des environnements - fléxibilité (virtualisation de l'environnement d'exécution, pas de la machine) ● OpenVZ, Vserver, Jail et… Docker
  • 14.
    Virtualisation au régime ● Un PC portable peut faire tourner jusqu'à 100 conteneurs ● 1000 conteneurs sur un serveur ● A l'intérieur des conteneurs, les logiciels tournent aussi vite que si ils étaient lancées sur l'OS hôte. ● Les opérations sur les conteneurs se font dans la seconde
  • 15.
    Mais... ''Je faiscela depuis 15 avec Jail sous BSD'' Signé: un barbu anonyme ● C'est en partie vrai mais Docker apporte nativement: – un environnement d'administration des conteneurs avec notamment le build basé sur les DockerFiles – la gestion en version des conteneurs – une registry pour stocker ses images/conteneurs – une API REST ● Docker est donc plus une surcouche aux solutions comme Jail ou OpenVZ
  • 16.
    Plutôt qu'un longdiscours... run Image Conteneur pull build DockerFile push Docker.io save pull ou Private Registry RReeppoossiittoorryy Conteneur Conteneur DDeevv IInnffrraa PPrroodd commit AAIIVV ((ooppttiioonnnneellllee))
  • 17.
    Comment installer Docker? ● Sur sa machine de developpement: – GNU/Linux: Nativement (package manager) – BSD, Mac OS, Windows: Via VM boot2docker (25 MB) ● Sur son serveur GNU/Linux – Nativement (package manager) – Distrib dédiée: CoreOS
  • 18.