SlideShare une entreprise Scribd logo
1  sur  22
INTRODUCTION A DOCKER
Boubker ABERWAG
Boubker ABERWAG
Développeur Java/JEE IBM Client Innovation Center
aberwagb@fr.ibm.com
b_aberwag@yahoo.fr
https://www.linkedin.com/in/boubkeraberwag
http://www.viadeo.com/fr/profile/boubker.aberwag
Historique
Développé par Solomon Hykes pour dotCloud
01/2013 : 1er commit
03/2013 : 1ere demo à Pycon US
03/2013 : Ouverture du dépôt GitHub
06/2013 : Rejoint la fondation Linux
09/2013 : Partenariat avec RedHat
01/2014 : Levée de 15M$
06/2014 : google intègre docker dans son cloud
11/2014 : amazon intègre docker à AWS
12/2014 : IBM intègre docker à BlueMix
10/2014 : Microsoft annonce sa volonté d'intégrer docker à azur
C’est quoi Docker?
• Moteur open source basé sur LXC
• utilise Copy-on-write
• Permet la création et le partage d'images
• Propose un format standard pour les conteneurs
• Permet d'exécuter les images plusieurs fois sur plusieurs
plateformes
• Très facile à utiliser
Container vs VM
VM
Container
Container vs VM
Docker (LXC)
• Un seul OS
• Temps de démarrage
(secondes)
• Montage de volumes
Hyperviseur
• Pleusieurs OS
• Temps de démarrage
(minutes)
• Partage de fichiers NFS
Motivation
Write once, run every where
Motivation
Dockerfile
• Fichier qui décrit les étapes nécessaires à la fabrication d’une
image
• Avantage :
• Lisible
• Facilement maintenable
• Facilement évolutif
Dockerfile
FROM ubuntu:14.04
RUN echo "1.565.1" > .lts-version-number
RUN apt-get update && apt-get install -y wget git curl zip vim
RUN apt-get update && apt-get install -y apache2 subversion libapache2-svn libsvn-perl
RUN usermod -U www-data && chsh -s /bin/bash www-data
COPY run_apache.sh /var/www/
RUN a2enmod rewrite cgi headers ldap authnz_ldap
WORKDIR /var/svn
CMD ["/var/www/run_apache.sh"]
Lancer un Conteneur
docker run 
-d 
-p 3690:3690 
-v /home/sofnul.fr/docker/svn/data/:/var/svn/ 
--name subversion 
erikxiv/subversion
Partage d’images
• Push/pull d'image dans un dépôt (privé/public)
• chercher une image dans un dépôt
• dotCloud maintient une base contenant des images (debian, centOS
....)
DockerHub
Docker-compose
Docker-compose
• Permet d’éxécuter et de mettre en relation plusieurs images
• Fichier docker-compose.yml
Docker-compose
docker-compose.yml
elasticsearch:
image: elasticsearch
hostname: elasticsearch
restart: always
expose: - "9200"
volumes: - ./elasticsearch/data:/usr/share/elasticsearch/data
logstash:
image: logstash
hostname: logstash
links: - elasticsearch
volumes: - ./logstash/:/usr/local/logstash/config
kibana:
image: kibana
hostname: kibana
links: - elasticsearch
volumes: - /etc/localtime:/etc/localtime:ro
ports: - "5601:5601"
Lancer un conteneur (docker-compose)
docker-compose up
Et si j'ai Windows ?
• Installer une distribution Linux
• Désinstaller Windows
2 solutions
Plus sérieusement
• Utiliser boot2docker
Windows et OSX
• Boot2Docker
• VirtualBox
VS
Windows et OSX (EVOLUTION)
• Docker propose deux solutions :
• Docker for Windows
• Docker for Mac
• S'exécute dans une distribution Alpine Linux Sans VirtualBox
• Docker pour Windows : Hyper-V
• Docker pour Mac : Une machine virtuelle Xhyve
DEMO
MERCI
Questions ?

Contenu connexe

Tendances

Codons notre infrastructure
Codons notre infrastructureCodons notre infrastructure
Codons notre infrastructurecontinuousphp
 
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
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
Presentation features
Presentation featuresPresentation features
Presentation featuresArtusamak
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptxEsokia
 
De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013Stephane Manciot
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation ConteneurisationTADx
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another frameworkLAHAXE Arnaud
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Silicon Comté
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Cédric Leblond
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOpsJeoffrey Bauvin
 
Html5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGHtml5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGJUG Toulouse
 
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Silicon Comté
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSmartnSkilled
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsFactoVia
 

Tendances (20)

Codons notre infrastructure
Codons notre infrastructureCodons notre infrastructure
Codons notre infrastructure
 
Codons notre infrastructure
Codons notre infrastructureCodons notre infrastructure
Codons notre infrastructure
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
 
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
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
Presentation features
Presentation featuresPresentation features
Presentation features
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
 
De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation Conteneurisation
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another framework
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOps
 
Html5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGHtml5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUG
 
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 

Similaire à Support : introduction à docker

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
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerNizar GARRACHE
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide
 
[Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. [Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. Julien CROUZET
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugamine17157
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...AbdellahELMAMOUN
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
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
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de dockerjean pasqualini
 
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
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 

Similaire à Support : introduction à docker (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 ?
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
[Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. [Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit.
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
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
 
What is Docker
What is Docker What is Docker
What is Docker
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
docker.pptx
docker.pptxdocker.pptx
docker.pptx
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de docker
 
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, ...
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Intro docker
Intro dockerIntro docker
Intro docker
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
 

Support : introduction à docker

  • 2. Boubker ABERWAG Développeur Java/JEE IBM Client Innovation Center aberwagb@fr.ibm.com b_aberwag@yahoo.fr https://www.linkedin.com/in/boubkeraberwag http://www.viadeo.com/fr/profile/boubker.aberwag
  • 3. Historique Développé par Solomon Hykes pour dotCloud 01/2013 : 1er commit 03/2013 : 1ere demo à Pycon US 03/2013 : Ouverture du dépôt GitHub 06/2013 : Rejoint la fondation Linux 09/2013 : Partenariat avec RedHat 01/2014 : Levée de 15M$ 06/2014 : google intègre docker dans son cloud 11/2014 : amazon intègre docker à AWS 12/2014 : IBM intègre docker à BlueMix 10/2014 : Microsoft annonce sa volonté d'intégrer docker à azur
  • 4. C’est quoi Docker? • Moteur open source basé sur LXC • utilise Copy-on-write • Permet la création et le partage d'images • Propose un format standard pour les conteneurs • Permet d'exécuter les images plusieurs fois sur plusieurs plateformes • Très facile à utiliser
  • 6. Container vs VM Docker (LXC) • Un seul OS • Temps de démarrage (secondes) • Montage de volumes Hyperviseur • Pleusieurs OS • Temps de démarrage (minutes) • Partage de fichiers NFS
  • 9. Dockerfile • Fichier qui décrit les étapes nécessaires à la fabrication d’une image • Avantage : • Lisible • Facilement maintenable • Facilement évolutif
  • 10. Dockerfile FROM ubuntu:14.04 RUN echo "1.565.1" > .lts-version-number RUN apt-get update && apt-get install -y wget git curl zip vim RUN apt-get update && apt-get install -y apache2 subversion libapache2-svn libsvn-perl RUN usermod -U www-data && chsh -s /bin/bash www-data COPY run_apache.sh /var/www/ RUN a2enmod rewrite cgi headers ldap authnz_ldap WORKDIR /var/svn CMD ["/var/www/run_apache.sh"]
  • 11. Lancer un Conteneur docker run -d -p 3690:3690 -v /home/sofnul.fr/docker/svn/data/:/var/svn/ --name subversion erikxiv/subversion
  • 12. Partage d’images • Push/pull d'image dans un dépôt (privé/public) • chercher une image dans un dépôt • dotCloud maintient une base contenant des images (debian, centOS ....)
  • 15. Docker-compose • Permet d’éxécuter et de mettre en relation plusieurs images • Fichier docker-compose.yml
  • 16. Docker-compose docker-compose.yml elasticsearch: image: elasticsearch hostname: elasticsearch restart: always expose: - "9200" volumes: - ./elasticsearch/data:/usr/share/elasticsearch/data logstash: image: logstash hostname: logstash links: - elasticsearch volumes: - ./logstash/:/usr/local/logstash/config kibana: image: kibana hostname: kibana links: - elasticsearch volumes: - /etc/localtime:/etc/localtime:ro ports: - "5601:5601"
  • 17. Lancer un conteneur (docker-compose) docker-compose up
  • 18. Et si j'ai Windows ? • Installer une distribution Linux • Désinstaller Windows 2 solutions Plus sérieusement • Utiliser boot2docker
  • 19. Windows et OSX • Boot2Docker • VirtualBox VS
  • 20. Windows et OSX (EVOLUTION) • Docker propose deux solutions : • Docker for Windows • Docker for Mac • S'exécute dans une distribution Alpine Linux Sans VirtualBox • Docker pour Windows : Hyper-V • Docker pour Mac : Une machine virtuelle Xhyve
  • 21. DEMO