Docker
Thomas Bailly - 1er Décembre 2015
Agenda
1. Architecture
2. Fonctionnement
3. Limitations
Avant
un peu d'histoire
En 30 ans
Qu'on appris les SI ?
Interactions > aux applications
Découper pour mieux régner
L'approche EAI*
Problèmes de performances
Soucis de stabilité
SPOF (Single Point of Failure)
* Enterprise Application Integration
L'approche SOA*
Mieux que l'EAI
Plus complexe (SOAP, WS-*...)
Manque de réel conception des entités métier
* Services Oriented Architecture
L'approche Microservices
SOA v2
Au revoir SOAP, Bonjour REST
Des protocoles qui se standardisent
SEUL HIC
Besoin de services 100% étanches
"Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur virtuel, qui pourra être exécuté sur n'importe quel serveur Linux"
Portail Web
API
Base
de
données
NOTRE APPLICATION TYPE
En environnement Virtuel
Machine physique
Système d'exploitation "hôte"
Hyperviseur
Système d'exploitation invité 1
Système d'exploitation invité 2
Système d'exploitation invité 3
Dependances
Dependances
Dependances
Portail Web
API
Base de données
En environnement DOCKER
Machine physique
Système d'exploitation "hôte"
Docker
Dependances
Portail Web
API
Base de données
Avantages
Optimisation des ressources
Plus d'espace pour les applications
Moins de ressources "redondantes"
Quid de Windows ?
Docker Client
Windows Server
Linux
Docker Engine
(daemon)
Docker Engine
(daemon)
Windows Server
Container Support
Linux Container
Support (XLC)
LibContainer
API d'accès aux containers
Plus de dépendance à LXC
Implémentation sous Docker 0.9
thanks
Installation
"On Premise" ou sur un cloud
Exemple Azure
Créer une machine CoreOS
ou Windows Server 2016
Verifier une installation
docker -version
Tester Un Container
docker run hello-world
Le Fichier Docker
Docker hub
Docker Hub est un service cloud qui permet de centraliser les images Docker. Il permet de trouver des images officielles, issues de la communauté ou des images privées
Rechercher UNE Image
docker search ubuntu
Télécharger une Image
docker pull ubuntu
Créer une Image
docker run --name bibuntu -t - i ubuntu /bin/bash
Démarrer une Image
docker start bibuntu
S'attacher à une Image
docker exec -it bibuntu bash
Modifications
Couche modifications
Image d'origine
Avoir une Image Built-in
docker run --name bib-mysql -e MYSQL_ROOT_PASSWORD=test -e MYSQL_DATABASE=bib-dev -e MYSQL_USER=bib -e MYSQL_PASSWORD=test -p 3306:3306 -d mysql:5.6
Attention la place
docker rmi ubuntu
(si pas utilisé évidemment)
Limitations
"On me dit que ça peut pas partir en prOD"
Si Mais... Attention
Sécurité
Performances
Supervision
Jeunesse de la solution
Docker
By Thomas Bailly
Docker
- 1,111