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

http://portal.azure.com

Créer une machine CoreOS

ou Windows Server 2016

Verifier une installation

docker -version

Tester Un Container

docker run hello-world

Le Fichier Docker

FROM scratch

ADD hello /

CMD ["hello"]

 

https://github.com/docker-library/hello-world

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

Made with Slides.com