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 ?

Support : introduction à docker

  • 1.
  • 2.
    Boubker ABERWAG Développeur Java/JEEIBM 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 SolomonHykes 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
  • 5.
  • 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
  • 7.
  • 8.
  • 9.
    Dockerfile • Fichier quidé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 dockerrun -d -p 3690:3690 -v /home/sofnul.fr/docker/svn/data/:/var/svn/ --name subversion erikxiv/subversion
  • 12.
    Partage d’images • Push/pulld'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 ....)
  • 13.
  • 14.
  • 15.
    Docker-compose • Permet d’éxécuteret 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'aiWindows ? • 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.
  • 22.