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, 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
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec dockergcatt
 
Alphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et AdministrationAlphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et AdministrationAlphorm
 
A la découverte de kubernetes
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetesJulien Maitrehenry
 
Docker introduction
Docker introductionDocker introduction
Docker introductionPhuc Nguyen
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for BeginnerShahzad Masud
 
Rapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XPRapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XPSarah
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerInstruqt
 
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
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 
Docker intro
Docker introDocker intro
Docker introOleg Z
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...Simplilearn
 
Vulgarisation de la technologie de containers Docker
Vulgarisation de la technologie de containers DockerVulgarisation de la technologie de containers Docker
Vulgarisation de la technologie de containers DockerFlorian Bobin
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersYajushi Srivastava
 

Tendances (20)

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 ?
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Alphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et AdministrationAlphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et Administration
 
What is Docker
What is Docker What is Docker
What is Docker
 
A la découverte de kubernetes
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetes
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Rapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XPRapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XP
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Intro docker
Intro dockerIntro docker
Intro docker
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
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...
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker intro
Docker introDocker intro
Docker intro
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Vulgarisation de la technologie de containers Docker
Vulgarisation de la technologie de containers DockerVulgarisation de la technologie de containers Docker
Vulgarisation de la technologie de containers Docker
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 

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

709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptxAbdellahELMAMOUN
 
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
 
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
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack dockerAlexis Ducastel
 

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

709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
 
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
 
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
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack 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