SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Docker
un outil pour faciliter le développement
et le déploiement informatique
● sur des postes individuels
● ou dans le Cloud
https://docs.docker.com/engine/docker-overview/
“Docker est une plateforme pour
développer, déployer et exécuter
des applications”
2
3
Caractéristiques
& Fonctionnement
4
Qu’est-ce qu’un conteneur ?
Docker = outils et écosystème pour conteneurs logiciels
Conteneurs logiciels = “virtualisation” par le système d’exploitation
5
Comment ça marche ?
Caractéristiques de la plateforme Docker
● uniformité de l’environnement
● légèreté de la solution
● orienté applicatif
6
Uniformité de l’environnement
Exécuter une application
● quelque soit la plateforme (desktop, Cloud, ...)
● même environnement (uniforme)
● reproductible
Avoir un comportement plus déterministe !
7
Uniformité par isolation
Namespaces
● isolation des ressources systèmes par conteneur (process,
network, …)
Union Filesystem
● Système de fichiers propre, dépendances isolées
● Optimisation en couches pour place et bande passante
8
Légèreté de la solution
Faire cohabiter sur le même système
● plusieurs applications/conteneurs
● à la demande
● en exploitant/maîtrisant au mieux les ressources
● sans interférence
9
Légèreté par intégration dans le noyau
Noyau partagé entre tous les conteneurs
● faible surcoût du système
Cgroups (Control groups)
● Contrôle de l’usage des ressources par conteneur (CPU,
mémoire…)
10
Applicatif
Fournir un environnement orienté applicatif
Versus orienté machine/système
● build intégré, versions
● réutilisation, hébergement, partage d’images Docker
● écosystème applicatif = orchestration, monitoring
11
Outils & écosystème
12
Engine, Compose, Machine, Swarm, Stack...
● Engine = moteur Docker (démon Docker + client CLI)
● Compose = application avec plusieurs services en conteneurs
● Machine = provision de machines Docker
● Swarm = cluster de machines Docker
● Stack = déploiement d’application (Compose) sur Swarm
13
Dockerfile & docker build
Système de build pour images de conteneur
● Dockerfile = format déclaratif (FROM, COPY, RUN,
ENTRYPOINT…)
○ FROM = image parente (OS, socle technique)
○ COPY = copie de ressources dans l’image
○ RUN = lancement de commandes pour provisioner, compiler, nettoyer
○ ENTRYPOINT = commande par défaut du conteneur
● docker build = commande de création
○ en local
○ sur une CI
14
Registry & Docker Hub
Registry = service de dépôts d’images Docker à réutiliser
● docker push publie l’image
● docker pull récupère l’image
Docker Hub est le service “public” de dépôt
● images de tout calibre (distributions, services, applications, ...)
15
Usages & Retours
d’expérience
16
“Docker est une plateforme pour
développer, déployer et exécuter
des applications”
17
Démarrer un projet rapidement
● Construire son propre conteneur
● Installer des services, des dépendances
● Lancer son application avec tous les services
18
Construire son propre conteneur
19
dockerFile
image Dockercontainer Docker
“layers”
Lancer son application avec tous les services
20
docker compose
container Docker
Faire des tests d’intégration
● Moins dépendre de l’infrastructure
○ Faciliter le lancement des services de l’application
○ Simuler une partie des services
● Partager des jeux de tests reproductibles
● Tester migration, portabilité des frameworks, systèmes, etc.
21
Créer des environnements de développement
● Installation facilitée des outils
○ 1 seule dépendance (Docker) et des images à télécharger
○ outils déjà configurés pour le projet
● Lancement plus uniforme des commandes
○ build
○ tests
● Sur différents environnements
○ poste local développeur (Linux, Windows, OSX)
○ serveur d’intégration continue
22
23
Caveats
24
On ne veut pas être complètement isolé du système hôte !
● Partage des fichiers sources
=> droits des fichiers créés dans les conteneurs
● Partage de ressources systèmes
=> lancement d’interfaces graphiques, connexion USB
“Docker est une plateforme pour
développer, déployer et exécuter
des applications”
25
Intégration continue sous Docker
● Solution intégrée NAS + Docker
● Installer Jenkins = conteneur Docker
● Lancer des conteneurs Docker sous Docker
docker run -v /var/run/docker.sock:/var/run/docker.sock
26
Docker facilite l’automatisation du déploiement ...
● Le déploiement est le même quelque soit la technologie
● Intègre un système de version (tag)
● Les dépendances sont intégrés directement dans les images
● Des outils permettent d’exprimer des dépendances entre les
containers
○ docker-compose
○ les orchestrateurs
27
… tout en utilisant mieux les ressources disponibles
● Permet de simplifier le provisionning des machines
○ Les machines deviennent plus interchangeable. Les services migrent plus
facilement de serveurs. Les pannes matériel sont moins “grave”.
● Travaille en complément des machines virtuelles
○ Les VMs optimisent l’utilisation du hardware
○ Les container optimisent l’utilisation de l’OS
■ Contrôle de la consommation en ressources des container
■ Permet d'exécuter plus de services sur un même nombre de machine
28
“Docker est une plateforme pour
développer, déployer et exécuter
des applications”
29
Docker sous Windows
architecture système
30
Docker sous Windows
Type de container:
● windows server
● hyper-v : docker run --isolation=hyperv
Image basée sur :
● windows server (2016)
● nano server
31
Docker sous windows
Windows subsystems for linux ?
32
Orchestrateur de containers
● Gérer le cycle de vie des containers
○ Contrôle et automatisations des tâches:
■ création et déploiements dans des environnements dynamiques
■ allocation des ressources (CPU/Mémoire) entre containers
■ mise à échelle
● Systèmes déclaratif :
○ être capable d’observer le system
○ configuration en yaml ou json
33
Example Kubernetes
34
Orchestrateurs dans le cloud
● AWS :
○ AKS : kubernetes gérer par AMAZON
○ ECS : solution maison
● AZURE:
○ Azure Container Service avec Mesos
○ Azure kubernetes Service
○ Docker Swarm (deprecated)
● Google:
○ Google kubernetes engine
○
=> nécessité d’utiliser une docker registry
35
Merci pour votre attention !
36

Contenu connexe

Tendances

Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack Ahmed Slim
 
PrésentationCI_CD.pptx
PrésentationCI_CD.pptxPrésentationCI_CD.pptx
PrésentationCI_CD.pptxBechirElosma
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec dockergcatt
 
Alphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm
 
Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Julien Maitrehenry
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesStéphane Di Cioccio
 
Etude et mise en place d’un Cloud privé Avec Openstack
Etude et mise en place d’un Cloud privé Avec OpenstackEtude et mise en place d’un Cloud privé Avec Openstack
Etude et mise en place d’un Cloud privé Avec OpenstackBayeOusseynouFall
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsKokou Gaglo
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Présentation de Microsoft Azure
Présentation de Microsoft AzurePrésentation de Microsoft Azure
Présentation de Microsoft AzureChristophe Peugnet
 
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5Alphorm
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginnersJuneyoung Oh
 

Tendances (20)

Intro docker
Intro dockerIntro docker
Intro docker
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack
 
Cloud_2022.pdf
Cloud_2022.pdfCloud_2022.pdf
Cloud_2022.pdf
 
PrésentationCI_CD.pptx
PrésentationCI_CD.pptxPrésentationCI_CD.pptx
PrésentationCI_CD.pptx
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Alphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et Configuration
 
Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequences
 
Etude et mise en place d’un Cloud privé Avec Openstack
Etude et mise en place d’un Cloud privé Avec OpenstackEtude et mise en place d’un Cloud privé Avec Openstack
Etude et mise en place d’un Cloud privé Avec Openstack
 
DEVOPS
DEVOPSDEVOPS
DEVOPS
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec Jenkins
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Presentation-DEVOPS-par-GDG
Presentation-DEVOPS-par-GDGPresentation-DEVOPS-par-GDG
Presentation-DEVOPS-par-GDG
 
Présentation de Microsoft Azure
Présentation de Microsoft AzurePrésentation de Microsoft Azure
Présentation de Microsoft Azure
 
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
 

Similaire à Docker - un outil pour faciliter le développement et le déploiement informatique

docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugamine17157
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerNizar GARRACHE
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueAZUG FR
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxAnisSalhi3
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...TelecomValley
 
Gab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur AzureGab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur AzureVincent Thavonekham-Pro
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfHamida Rebai Trabelsi
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 
A la découverte de docker, 2ème partie
A la découverte de docker, 2ème partieA la découverte de docker, 2ème partie
A la découverte de docker, 2ème partieSamuel Desseaux
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfqsdqsd4
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
formation_dockerhscv jh sjsjx jhxavcjhvdcjhvajhsdvc
formation_dockerhscv jh   sjsjx jhxavcjhvdcjhvajhsdvcformation_dockerhscv jh   sjsjx jhxavcjhvdcjhvajhsdvc
formation_dockerhscv jh sjsjx jhxavcjhvdcjhvajhsdvchichamelhirch
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de dockerjean pasqualini
 

Similaire à Docker - un outil pour faciliter le développement et le déploiement informatique (20)

What is Docker
What is Docker What is Docker
What is Docker
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
Prise en main de Docker
Prise en main de DockerPrise en main de Docker
Prise en main de Docker
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
 
docker.pptx
docker.pptxdocker.pptx
docker.pptx
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
 
Gab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur AzureGab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur Azure
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
DevOps 3 - Docker.pdf
DevOps 3 - Docker.pdfDevOps 3 - Docker.pdf
DevOps 3 - Docker.pdf
 
A la découverte de docker, 2ème partie
A la découverte de docker, 2ème partieA la découverte de docker, 2ème partie
A la découverte de docker, 2ème partie
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
formation_dockerhscv jh sjsjx jhxavcjhvdcjhvajhsdvc
formation_dockerhscv jh   sjsjx jhxavcjhvdcjhvajhsdvcformation_dockerhscv jh   sjsjx jhxavcjhvdcjhvajhsdvc
formation_dockerhscv jh sjsjx jhxavcjhvdcjhvajhsdvc
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de docker
 

Docker - un outil pour faciliter le développement et le déploiement informatique

  • 1. Docker un outil pour faciliter le développement et le déploiement informatique
  • 2. ● sur des postes individuels ● ou dans le Cloud https://docs.docker.com/engine/docker-overview/ “Docker est une plateforme pour développer, déployer et exécuter des applications” 2
  • 3. 3
  • 5. Qu’est-ce qu’un conteneur ? Docker = outils et écosystème pour conteneurs logiciels Conteneurs logiciels = “virtualisation” par le système d’exploitation 5
  • 6. Comment ça marche ? Caractéristiques de la plateforme Docker ● uniformité de l’environnement ● légèreté de la solution ● orienté applicatif 6
  • 7. Uniformité de l’environnement Exécuter une application ● quelque soit la plateforme (desktop, Cloud, ...) ● même environnement (uniforme) ● reproductible Avoir un comportement plus déterministe ! 7
  • 8. Uniformité par isolation Namespaces ● isolation des ressources systèmes par conteneur (process, network, …) Union Filesystem ● Système de fichiers propre, dépendances isolées ● Optimisation en couches pour place et bande passante 8
  • 9. Légèreté de la solution Faire cohabiter sur le même système ● plusieurs applications/conteneurs ● à la demande ● en exploitant/maîtrisant au mieux les ressources ● sans interférence 9
  • 10. Légèreté par intégration dans le noyau Noyau partagé entre tous les conteneurs ● faible surcoût du système Cgroups (Control groups) ● Contrôle de l’usage des ressources par conteneur (CPU, mémoire…) 10
  • 11. Applicatif Fournir un environnement orienté applicatif Versus orienté machine/système ● build intégré, versions ● réutilisation, hébergement, partage d’images Docker ● écosystème applicatif = orchestration, monitoring 11
  • 13. Engine, Compose, Machine, Swarm, Stack... ● Engine = moteur Docker (démon Docker + client CLI) ● Compose = application avec plusieurs services en conteneurs ● Machine = provision de machines Docker ● Swarm = cluster de machines Docker ● Stack = déploiement d’application (Compose) sur Swarm 13
  • 14. Dockerfile & docker build Système de build pour images de conteneur ● Dockerfile = format déclaratif (FROM, COPY, RUN, ENTRYPOINT…) ○ FROM = image parente (OS, socle technique) ○ COPY = copie de ressources dans l’image ○ RUN = lancement de commandes pour provisioner, compiler, nettoyer ○ ENTRYPOINT = commande par défaut du conteneur ● docker build = commande de création ○ en local ○ sur une CI 14
  • 15. Registry & Docker Hub Registry = service de dépôts d’images Docker à réutiliser ● docker push publie l’image ● docker pull récupère l’image Docker Hub est le service “public” de dépôt ● images de tout calibre (distributions, services, applications, ...) 15
  • 17. “Docker est une plateforme pour développer, déployer et exécuter des applications” 17
  • 18. Démarrer un projet rapidement ● Construire son propre conteneur ● Installer des services, des dépendances ● Lancer son application avec tous les services 18
  • 19. Construire son propre conteneur 19 dockerFile image Dockercontainer Docker “layers”
  • 20. Lancer son application avec tous les services 20 docker compose container Docker
  • 21. Faire des tests d’intégration ● Moins dépendre de l’infrastructure ○ Faciliter le lancement des services de l’application ○ Simuler une partie des services ● Partager des jeux de tests reproductibles ● Tester migration, portabilité des frameworks, systèmes, etc. 21
  • 22. Créer des environnements de développement ● Installation facilitée des outils ○ 1 seule dépendance (Docker) et des images à télécharger ○ outils déjà configurés pour le projet ● Lancement plus uniforme des commandes ○ build ○ tests ● Sur différents environnements ○ poste local développeur (Linux, Windows, OSX) ○ serveur d’intégration continue 22
  • 23. 23
  • 24. Caveats 24 On ne veut pas être complètement isolé du système hôte ! ● Partage des fichiers sources => droits des fichiers créés dans les conteneurs ● Partage de ressources systèmes => lancement d’interfaces graphiques, connexion USB
  • 25. “Docker est une plateforme pour développer, déployer et exécuter des applications” 25
  • 26. Intégration continue sous Docker ● Solution intégrée NAS + Docker ● Installer Jenkins = conteneur Docker ● Lancer des conteneurs Docker sous Docker docker run -v /var/run/docker.sock:/var/run/docker.sock 26
  • 27. Docker facilite l’automatisation du déploiement ... ● Le déploiement est le même quelque soit la technologie ● Intègre un système de version (tag) ● Les dépendances sont intégrés directement dans les images ● Des outils permettent d’exprimer des dépendances entre les containers ○ docker-compose ○ les orchestrateurs 27
  • 28. … tout en utilisant mieux les ressources disponibles ● Permet de simplifier le provisionning des machines ○ Les machines deviennent plus interchangeable. Les services migrent plus facilement de serveurs. Les pannes matériel sont moins “grave”. ● Travaille en complément des machines virtuelles ○ Les VMs optimisent l’utilisation du hardware ○ Les container optimisent l’utilisation de l’OS ■ Contrôle de la consommation en ressources des container ■ Permet d'exécuter plus de services sur un même nombre de machine 28
  • 29. “Docker est une plateforme pour développer, déployer et exécuter des applications” 29
  • 31. Docker sous Windows Type de container: ● windows server ● hyper-v : docker run --isolation=hyperv Image basée sur : ● windows server (2016) ● nano server 31
  • 32. Docker sous windows Windows subsystems for linux ? 32
  • 33. Orchestrateur de containers ● Gérer le cycle de vie des containers ○ Contrôle et automatisations des tâches: ■ création et déploiements dans des environnements dynamiques ■ allocation des ressources (CPU/Mémoire) entre containers ■ mise à échelle ● Systèmes déclaratif : ○ être capable d’observer le system ○ configuration en yaml ou json 33
  • 35. Orchestrateurs dans le cloud ● AWS : ○ AKS : kubernetes gérer par AMAZON ○ ECS : solution maison ● AZURE: ○ Azure Container Service avec Mesos ○ Azure kubernetes Service ○ Docker Swarm (deprecated) ● Google: ○ Google kubernetes engine ○ => nécessité d’utiliser une docker registry 35
  • 36. Merci pour votre attention ! 36