2. OLBATI - Geek Time - Mars 2017 2
Plan
● C'est quoi Docker ?
● Docker vs VMs
● Docker Engine
● Docker images
● Docker Container
● Docker Network
● Docker Hub
● Le dockerfile
● Démo
● Docker Compose
● Docker Swarm et Bundle
● Docker Cloud
3. OLBATI - Geek Time - Mars 2017 3
C'est quoi Docker ?
Docker permet de créer des environnements (appelées containers) de
manière à isoler des applications. Docker repose sur le kernel Linux
libcontainer.
Chaque conteneur dispose de son propre processus d'init et se termine
quand celui-ci se termine.
Tous les processus du conteneur n'ont pas accès aux processus de l'hôte
ou des autres conteneurs mais l'hôte lui a accès à la totalité des
processus (chaque conteneur à sa propre table de processus).
5. OLBATI - Geek Time - Mars 2017 5
Le Docker engine fait tourner les conteneurs et joue le rôle de contrôleur.
En termes d’architecture,
● Docker fonctionne sur une architecture client serveur.
● Le client Docker communique avec le Docker daemon qui fait
tourner le docker engine, pour construire et gérer les conteneurs
Docker.
● Le client Docker et le daemon Docker peuvent tourner sur la même
machine, comme sur des machines différentes.
Docker Engine
6. OLBATI - Geek Time - Mars 2017 6
Docker Image
Une image est un container statique. On pourrait comparer une image à
une capture d'un container à un moment donné, d'une sorte de snapshot
d'un de vos containers. Lorsqu'on souhaite travailler avec un container, on
déclare forcément un container à partir d'une image.
7. OLBATI - Geek Time - Mars 2017 7
Docker Container
Les conteneurs sont lancés à partir d'images. nous pouvons les
considérer comme des instances courantes d'une image. Ainsi,
nous pouvons penser à des images comme build time constructs et
les container comme runtime constructs .
Ces conteneurs sont vraiment runtime barebones, juste les choses
nécessaires pour fournir un fonctionnement, en working time , et à
peu près rien d'autre.
8. OLBATI - Geek Time - Mars 2017 8
Docker Network
La principale fonctionnalité de Docker network est de permet de
regrouper plusieurs containers entre eux, les groupes ainsi créés sont
isolés les uns des autres, ce qui limite les risques et les conflits. A noter
qu’un container peut appartenir à zéro ou plusieurs réseaux.
Par défaut, il existe un network appelé bridge .Ce network est créé en
même temps que l’installation de docker. Il est toujours utilisé par défaut
si vous ne spécifiez de réseaux au lancement d’un container .
9. OLBATI - Geek Time - Mars 2017 9
Docker Hub
Docker Hub est un portail d'échange de containers Docker pré
paramétrés. La librairie contient plus de 100 000 images de
containers proposées avec des OS (Ubuntu, CentOS...).
Docker propose aussi aux entreprises d'héberger en toute sécurité
leurs images de containers en mode on-premise ou via un cloud
privé. Baptisé Docker Trusted Registry, ce service est proposé; au
sein de l'offre payante Docker Datacenter.
10. OLBATI - Geek Time - Mars 2017 10
Le dockerfile
FROM : L'image de base à utiliser dans la construction. C'est obligatoire et doit
être la première commande du fichier.
MAINTAINER: Valeur facultative pour le responsable du script.
ADD : Copie un fichier du système hôte sur le conteneur.
COPY: Copie un fichier du système hôte sur le conteneur.
ENV: Définit une variable d'environnement dans le nouveau conteneur.
EXPOSE : Ouvre un port pour les conteneurs liés.
ONBUILD :Est déclenchée lorsque l'image dans le Dockerfile est utilisée comme
base pour une autre image.
RUN : Exécute une commande et enregistre le résultat
USER: Définit l'utilisateur par défaut dans le conteneur.
VOLUME : Crée un volume partagé qui peut être partagé entre les conteneurs ou
par la machine hôte.
WORKDIR : Définissez le répertoire de travail par défaut pour le conteneur.
CMD: La commande qui s'exécute lorsque le conteneur démarre.
ENTRYPOINT : La commande qui s'exécute lorsque le conteneur démarre.
11. OLBATI - Geek Time - Mars 2017 11
Docker Compose
Docker propose docker-compose qui offre la possibilité de “composer” un
ensemble de container sur une seule et même machine, mais également
de “scaler” les conteneurs toujours sur un même serveur
Le cli docker-compose peut être utilisé pour gérer une application
multi-conteneur. Il déplace également beaucoup des options que vous
entrez dans le docker run cli dans le fichier docker-compose.yml pour
faciliter la réutilisation.
13. OLBATI - Geek Time - Mars 2017 13
Docker Swarm et Bundle
Docker Swarm est l’outil proposé par Docker pour assurer la
gestion de clusters Docker, le routage, la scalabilité, :
service : Un service répliqué, distribué et load balanced peut être
facilement créé à l'aide de la commande create create service
configuration de sécurité :Fournir une authentification, une
autorisation et un cryptage aux communications de chaque nœud
participant a swarm.
stack et bundle application: Distributed Application Bundle, ou
DAB, est un format d'image distribuable multi-services
14. OLBATI - Geek Time - Mars 2017 14
Docker Cloud
Docker Cloud fournit un service de registre hébergé avec des
installations de compilation et de test pour les images d'application
Dockerisee.
Des outils pour vous aider à configurer et à gérer l'infrastructure
hôte;, Et les fonctionnalités du cycle de vie des applications pour
automatiser le déploiement (et le redéploiement) des services
créés à partir d'images.
15. OLBATI - Geek Time - Mars 2017 15
Thanks!
Any questions?
mahjoub.marzougui@olbati.com