introduction à docker.io

18
Présentation de Docker.io Présentation de Docker.io par Nicolas Hennion lors de la Commission Open-Source de la Telecom Valley du 11 septembre 2014

Upload: nicolas-hennion

Post on 22-Nov-2014

4.741 views

Category:

Technology


0 download

DESCRIPTION

Introduction à Docker lors de la commission open-source de la Telecom Valley du 11/09/2014

TRANSCRIPT

Page 1: Introduction à docker.io

Présentation de Docker.ioPrésentation de Docker.io

par Nicolas Hennion

lors de la Commission Open-Source de la Telecom Valley du 11 septembre 2014

Page 2: Introduction à docker.io

Qui a déjà 'Docker' dans l'assistance ?

Page 3: Introduction à docker.io

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. ''

Page 4: Introduction à docker.io

Vous avez dit conteneur ?

Page 5: Introduction à docker.io

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

Page 6: Introduction à docker.io

Le Saint Graal des DevOps

Par sa nature Docker assure que le conteneur utilisé en développement fonctionnera de la même manière en production.

Quand un adminsys met un logiciel en production...

Page 7: Introduction à docker.io

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.

Page 8: Introduction à docker.io

Qui l'utilise ?

● Rackspace

● Red Hat

● IBM

● Google

● Spotify

● Amazon

● Ebay

● Twitter

● Facebook

● ...

Page 9: Introduction à docker.io

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

Page 10: Introduction à docker.io

Pourquoi faire ?

● Plate-forme de développement souple

● Intégration continue

● Déploiement/mise en production

● Plate-forme PaaS

Page 11: Introduction à docker.io

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

Page 12: Introduction à docker.io

Virtualisation vs Containers 1/2

● Virtualisation (émulateur) ● Containers (isolateur)

Page 13: Introduction à docker.io

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 œuvre

- instance consommatrice en ressources

● VMWare, Xen, VirtualBox, KVM, Hyper-V…

● Containers ou virtualisation légère

+ coûts de mise en œuvre

+ rapidité de lancement des environnements

- fléxibilité (virtualisation de l'environnement d'exécution, pas de la machine)

● OpenVZ, Vserver, Jail et… Docker

Page 14: Introduction à docker.io

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

Page 15: Introduction à docker.io

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

Page 16: Introduction à docker.io

Plutôt qu'un long discours...

Image Conteneur

DockerFile

Docker.ioou Private Registry

RepositoryRepository

Conteneur

Conteneur

DevDev

InfraInfra(optionnelle)(optionnelle)AIVAIV

ProdProd

run

push

buildpull

commit

save

pull

Page 17: Introduction à docker.io

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

Page 18: Introduction à docker.io

Une petite démonstation...