SlideShare une entreprise Scribd logo
1  sur  53
Docker : la paravirtualisation simple
et puissante
Mathieu Passenaud
@mathieupassenau
@HumanTalksTlse
http://www.mathieupassenaud.fr
Docker, pourquoi en parler ?
Docker a été distribué en tant que projet open source à partir de
mars 2013[3].
Au 18 novembre 2013, le projet a été mis en favoris plus de 7 300
fois sur GitHub (14e projet le plus populaire), avec plus de 900
forks et 200 contributeurs[6].
Au 9 mai 2014, le projet a été mis en favoris plus de 11 769 fois
sur GitHub, avec plus de 1 912 forks et 423 contributeurs[6].
fr.wikipedia.org/wiki/Docker_(Système_de_conteneur_Linux)
2
Docker, pourquoi en parler ?
• L'intégration de Docker a été faite avec les outils de gestion
d'infrastructures suivants :
• Chef [7]
• Puppet [8]
• Vagrant [9]
• Jenkins [10]
• OpenStack Nova [11]
• OpenSVC [12]
• Le 19 septembre 2013, Red Hat et Docker ont annoncé une collaboration
concernant Fedora, Red Hat Enterprise Linux et Openshift[13].
fr.wikipedia.org/wiki/Docker_(Système_de_conteneur_Linux)
3
C’est quoi ?
• Des containers
• Comme au port, vos
marchandises sont isolées
• Mais sur le même navire !
4
5
« Docker est un système de packaging qui
permet de prendre n’importe quel code
source, n’importe quelle application et de
l’envelopper,
avec toutes ses dépendances, dans un
objet unique, « self-contained », que l’on
peut déplacer et faire tourner sur n’importe
quel serveur, n’importe où sur la planète »
Solomon Hykes
6
« A partir du moment où ça tourne
sous un process unix, à partir du
moment où ça écoute sur une socket
TCP, on peut le déployer, on peut le
scaler. »
Solomon Hykes
7
C’est intéressant ?
Ou juste un buzz ?
8
Comment ça marche ?
« LxC (Linux Containers), une fonction
d’isolation des process désormais
complètement intégrée au noyau de Linux
depuis sa version 3.8. »
http://www.silicon.fr/open-source-docker-demoder-vm-93411.html
9
10
Concrètement
11
Sur le « host », la commande
« docker » fait office « d’ hyperviseur »
12
root@server:/home/mathieu# docker run ubuntu:14.04 /bin/echo 'Hello world'
Hello world
root@server:/home/mathieu#
Je lance :
13
root@server:/home/mathieu# docker ps
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS NAMES
root@server:/home/mathieu#
Et j’ai…
Ben, rien
14
Je re-lance !
root@server:/home/mathieu# docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello
world; sleep 1; done"
23d69e6697115fa93b90b1e891218bebd9aa7156c853b18092bb05f81f012d26
root@server:/home/mathieu#
15
root@server:/home/mathieu# docker ps
CONTAINER ID IMAGE COMMAND
23d69e669711 ubuntu:14.04 "/bin/sh -c 'while t
CREATED STATUS PORTS NAMES
33 seconds ago Up 32 seconds tender_lumiere
root@server:/home/mathieu#
Et j’ai…
Un container en exécution !
16
Mon container tourne tout le temps
que le(s) processus lancé existe
17
Cas concret : construisons une image
18
Je lance
root@server:/home/mathieu# docker run -t -i ubuntu:14.04 /bin/bash
root@a16a05633b78:/#
(-t : tty, -i : interactif)
root@a16a05633b78:/# apt-get update
…
root@a16a05633b78:/# apt-get install default-jre
…
root@a16a05633b78:/opt# wget http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat-
7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz
root@a16a05633b78:/opt# tar xvf apache-tomcat-7.0.56.tar.gz
root@a16a05633b78:/opt/apache-tomcat-7.0.56/bin# ./startup.sh
...
Tomcat started.
19
Et…
20
root@server:/# docker ps
CONTAINER ID IMAGE COMMAND
a16a05633b78 ubuntu:14.04 "/bin/bash”
CREATED STATUS PORTS NAMES
20 minutes ago Up 20 minutes dreamy_meitner
root@server:/#
root@server:/# docker commit -m="installed tomcat" -a="Mathieu
Passenaud" a16a05633b78 ubuntu/tomcat
On sauvegarde l’image
21
Mon image existe !
root@server:/home/mathieu# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu/tomcat latest e63854b1dca1 3 minutes ago 583.9 MB
ubuntu 14.04 6b4e8a7373fe 10 days ago 194.9 MB
base latest b750fe79269d 18 months ago 175.3 MB
root@server:/home/mathieu#
22
Je lance
root@server:/# docker run -p 8080:8080 ubuntu/tomcat /bin/sh -c "/opt/apache-tomcat-
7.0.56/bin/catalina.sh run"
Oct 11, 2014 11:15:39 PM org.apache.catalina.core.AprLifecycleListener
org.apache.catalina.startup.HostConfig deployDirectory
…
Oct 11, 2014 11:15:46 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 5395 ms
23
Et…
24
Maintenant on scripte
# This is a comment
FROM ubuntu:14.04
MAINTAINER Mathieu Passenaud <mathieu.passenaud@gmail.com>
RUN apt-get update && apt-get install -y default-jre wget
RUN wget http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat-
7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz -O /opt/apache-tomcat-7.0.56.tar.gz
RUN tar xvf /opt/apache-tomcat-7.0.56.tar.gz --directory=/opt/
root@server:/dockerimages/ubuntuTomcat# docker build .
25
# This is a comment
FROM ubuntu/tomcat:latest
MAINTAINER Mathieu Passenaud <mathieu.passenaud@gmail.com>
RUN /opt/apache-tomcat-7.0.56/bin/startup.sh
26
Facilitons nous la vie, dès
maintenant
27
28
29
30
Exemple complet
31
Architecture
• Apache en frontal
• Application web tomcat
• Base de données mysql
32
Avant - Avant
• Debian 5.0
• apt-get install apache mysql-server tomcat
• …
• 5 jours plus tard après debug, openjdk et
configuration, ça marche
33
Avant
• VMWare => ubuntu server 14.04
• Wget tomcat
• Apt-get install apache mysql-server
• Clone/transport de la VM vers la prod
34
Maintenant
• Un serveur debian 7.0 apache frontal, openSSL à
jour derrière firewall + LB
• Un/des serveur(s) ubuntu 14.04, Java 1.7 +
tomcat 7.0 (clone de machine de dev)
• Un serveur CentOS Mysql, construit depuis un
export d’une base mysql locale à la machine de
dev
• Ma machine de dev est dimensionnée comme
une machine de prod, je deviens DevOPS
35
Apache2 + LB Tomcat
MySQL
Tomcat
Tomcat
VMWARE
Matos de fou furieux
Vsphere/Vcloud ????
CENTOS
Ubuntu
Debian
CALL PBEAU ou
MLEN 36
Plus tard ???
• Boot2Docker sur la machine de dev
• Docker sur un serveur de prod
• Un container, basé sur debian 7.0 apache
frontal, openSSL à jour derrière firewall + LB
• Un container, basé sur ubuntu 14.04, Java 1.7
+ tomcat 7.0
• Un container, basé sur CentOS Mysql
37
Apache2 + LB Tomcat
MySQL
Tomcat
Tomcat
Docker
Matos de fou furieux + OS
CALL PBEAU ou
MLEN 38
Mais il nous manque 3 choses
• Comment je fais en dev ?
• Comment je rends le truc « scalable » ?
• Comment je fais communiquer mes containers ?
39
Comment je fais en dev ?
• J’installe un docker
– Apt-get install docker
– Boot2docker : http://boot2docker.io/
40
Comment je fais en dev ?
• J’arrête mes VM VMWare/VirtualBox
• Je travaille UNIQUEMENT dans des containers
• J’hésite pas à en faire plein de versions
(comme des snapshots)
• J’exporte un tar.gz pour déployer en recette et
en production
41
Boot2Docker
• http://boot2docker.io/
• VirtualBox + VM linux + docker
• Client Docker dans la console
42
43
44
45
Comment je rends le truc scalable ?
• https://docs.docker.com/swarm/
• http://www.sebastien-
han.fr/blog/2013/10/31/build-a-paas-zone-
within-your-openstack-cloud/
• http://docs.openstack.org/developer/devstac
k/
• https://labs.runabove.com/docker/
• http://shipyard-project.com/
46
Apache2 + LB Tomcat
MySQL
Tomcat
Tomcat
Docker + Swarm
CALL PBEAU ou
MLEN
Matos de fou
furieux + OS
Matos de fou
furieux + OS
Matos de fou
furieux + OS
Matos de fou
furieux + OS
47
Comment je fais communiquer les
containers entre eux ?
• -p 80:8080
– Redirection de port entre le hôte et le container
• Il existe un réseau interne entre containers
• Docker Links :
– https://docs.docker.com/userguide/dockerlinks/
– Nommer les containers à la création : --name web
– Puis le lier avec un autre : --link db:db
48
Apache2 + LB
Tomcat
MySQL
Tomcat
Tomcat
Docker + Swarm
Matos de fou
furieux + OS
Matos de fou
furieux + OS
Matos de fou
furieux + OS
Matos de fou
furieux + OS
49
Et pour l’existant et les récalcitrants ?
• Rancher
– rancher.com
50
Rancher
• Exporte une VM existante
• Fait tourner KVM dans des containers
• + GUI
51
52
53

Contenu connexe

Similaire à 5390997 Support formation : Construire et administrer vos conteneurs avec Docker.ppt

Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsWeb à Québec
 
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdfoptimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdfPascal Ponzoni
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de dockerjean pasqualini
 
Distribuer une application avec Symfony & Docker *
Distribuer une application avec Symfony & Docker *Distribuer une application avec Symfony & Docker *
Distribuer une application avec Symfony & Docker *Thierry M.
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
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é
 
Support : introduction à docker
Support : introduction à dockerSupport : introduction à docker
Support : introduction à dockerBoubker ABERWAG
 
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-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugamine17157
 
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
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Romain Chalumeau
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Fabien Arcellier
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftArthur Lutz
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerNizar GARRACHE
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Arthur Lutz
 

Similaire à 5390997 Support formation : Construire et administrer vos conteneurs avec Docker.ppt (20)

Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printemps
 
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdfoptimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de docker
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Distribuer une application avec Symfony & Docker *
Distribuer une application avec Symfony & Docker *Distribuer une application avec Symfony & Docker *
Distribuer une application avec Symfony & Docker *
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
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...
 
Support : introduction à docker
Support : introduction à dockerSupport : introduction à docker
Support : introduction à docker
 
Vagrant - Concept
Vagrant - ConceptVagrant - Concept
Vagrant - Concept
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
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, ...
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
 

Plus de AbdellahELMAMOUN

0404_docker_commands 0404_docker_commands.pdf.pdf
0404_docker_commands 0404_docker_commands.pdf.pdf0404_docker_commands 0404_docker_commands.pdf.pdf
0404_docker_commands 0404_docker_commands.pdf.pdfAbdellahELMAMOUN
 
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
 
mod_article25173409_1_mod_article25173409.ppt
mod_article25173409_1_mod_article25173409.pptmod_article25173409_1_mod_article25173409.ppt
mod_article25173409_1_mod_article25173409.pptAbdellahELMAMOUN
 
firewall firewall firewall firewall .pptx
firewall firewall firewall firewall .pptxfirewall firewall firewall firewall .pptx
firewall firewall firewall firewall .pptxAbdellahELMAMOUN
 
1536524 1536524 1536524 1536524 1536524.ppt
1536524  1536524 1536524  1536524 1536524.ppt1536524  1536524 1536524  1536524 1536524.ppt
1536524 1536524 1536524 1536524 1536524.pptAbdellahELMAMOUN
 
Cours_1_Introductiona_la_Securite_des_Sy-1.pdf
Cours_1_Introductiona_la_Securite_des_Sy-1.pdfCours_1_Introductiona_la_Securite_des_Sy-1.pdf
Cours_1_Introductiona_la_Securite_des_Sy-1.pdfAbdellahELMAMOUN
 
RHSA_1_Chapter(11)_Resume_chaptre_11.pptx
RHSA_1_Chapter(11)_Resume_chaptre_11.pptxRHSA_1_Chapter(11)_Resume_chaptre_11.pptx
RHSA_1_Chapter(11)_Resume_chaptre_11.pptxAbdellahELMAMOUN
 
RHSA_1_Chapter_Resume_CONTRILE_SERVCIES.pptx
RHSA_1_Chapter_Resume_CONTRILE_SERVCIES.pptxRHSA_1_Chapter_Resume_CONTRILE_SERVCIES.pptx
RHSA_1_Chapter_Resume_CONTRILE_SERVCIES.pptxAbdellahELMAMOUN
 
Linux_Gestion_logiciels_Paquetage_chapitre05
Linux_Gestion_logiciels_Paquetage_chapitre05Linux_Gestion_logiciels_Paquetage_chapitre05
Linux_Gestion_logiciels_Paquetage_chapitre05AbdellahELMAMOUN
 
DevOps+Docker+Engine simulation mode.pptx
DevOps+Docker+Engine simulation mode.pptxDevOps+Docker+Engine simulation mode.pptx
DevOps+Docker+Engine simulation mode.pptxAbdellahELMAMOUN
 

Plus de AbdellahELMAMOUN (10)

0404_docker_commands 0404_docker_commands.pdf.pdf
0404_docker_commands 0404_docker_commands.pdf.pdf0404_docker_commands 0404_docker_commands.pdf.pdf
0404_docker_commands 0404_docker_commands.pdf.pdf
 
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
 
mod_article25173409_1_mod_article25173409.ppt
mod_article25173409_1_mod_article25173409.pptmod_article25173409_1_mod_article25173409.ppt
mod_article25173409_1_mod_article25173409.ppt
 
firewall firewall firewall firewall .pptx
firewall firewall firewall firewall .pptxfirewall firewall firewall firewall .pptx
firewall firewall firewall firewall .pptx
 
1536524 1536524 1536524 1536524 1536524.ppt
1536524  1536524 1536524  1536524 1536524.ppt1536524  1536524 1536524  1536524 1536524.ppt
1536524 1536524 1536524 1536524 1536524.ppt
 
Cours_1_Introductiona_la_Securite_des_Sy-1.pdf
Cours_1_Introductiona_la_Securite_des_Sy-1.pdfCours_1_Introductiona_la_Securite_des_Sy-1.pdf
Cours_1_Introductiona_la_Securite_des_Sy-1.pdf
 
RHSA_1_Chapter(11)_Resume_chaptre_11.pptx
RHSA_1_Chapter(11)_Resume_chaptre_11.pptxRHSA_1_Chapter(11)_Resume_chaptre_11.pptx
RHSA_1_Chapter(11)_Resume_chaptre_11.pptx
 
RHSA_1_Chapter_Resume_CONTRILE_SERVCIES.pptx
RHSA_1_Chapter_Resume_CONTRILE_SERVCIES.pptxRHSA_1_Chapter_Resume_CONTRILE_SERVCIES.pptx
RHSA_1_Chapter_Resume_CONTRILE_SERVCIES.pptx
 
Linux_Gestion_logiciels_Paquetage_chapitre05
Linux_Gestion_logiciels_Paquetage_chapitre05Linux_Gestion_logiciels_Paquetage_chapitre05
Linux_Gestion_logiciels_Paquetage_chapitre05
 
DevOps+Docker+Engine simulation mode.pptx
DevOps+Docker+Engine simulation mode.pptxDevOps+Docker+Engine simulation mode.pptx
DevOps+Docker+Engine simulation mode.pptx
 

Dernier

Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 

Dernier (14)

Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 

5390997 Support formation : Construire et administrer vos conteneurs avec Docker.ppt

  • 1. Docker : la paravirtualisation simple et puissante Mathieu Passenaud @mathieupassenau @HumanTalksTlse http://www.mathieupassenaud.fr
  • 2. Docker, pourquoi en parler ? Docker a été distribué en tant que projet open source à partir de mars 2013[3]. Au 18 novembre 2013, le projet a été mis en favoris plus de 7 300 fois sur GitHub (14e projet le plus populaire), avec plus de 900 forks et 200 contributeurs[6]. Au 9 mai 2014, le projet a été mis en favoris plus de 11 769 fois sur GitHub, avec plus de 1 912 forks et 423 contributeurs[6]. fr.wikipedia.org/wiki/Docker_(Système_de_conteneur_Linux) 2
  • 3. Docker, pourquoi en parler ? • L'intégration de Docker a été faite avec les outils de gestion d'infrastructures suivants : • Chef [7] • Puppet [8] • Vagrant [9] • Jenkins [10] • OpenStack Nova [11] • OpenSVC [12] • Le 19 septembre 2013, Red Hat et Docker ont annoncé une collaboration concernant Fedora, Red Hat Enterprise Linux et Openshift[13]. fr.wikipedia.org/wiki/Docker_(Système_de_conteneur_Linux) 3
  • 4. C’est quoi ? • Des containers • Comme au port, vos marchandises sont isolées • Mais sur le même navire ! 4
  • 5. 5
  • 6. « Docker est un système de packaging qui permet de prendre n’importe quel code source, n’importe quelle application et de l’envelopper, avec toutes ses dépendances, dans un objet unique, « self-contained », que l’on peut déplacer et faire tourner sur n’importe quel serveur, n’importe où sur la planète » Solomon Hykes 6
  • 7. « A partir du moment où ça tourne sous un process unix, à partir du moment où ça écoute sur une socket TCP, on peut le déployer, on peut le scaler. » Solomon Hykes 7
  • 8. C’est intéressant ? Ou juste un buzz ? 8
  • 9. Comment ça marche ? « LxC (Linux Containers), une fonction d’isolation des process désormais complètement intégrée au noyau de Linux depuis sa version 3.8. » http://www.silicon.fr/open-source-docker-demoder-vm-93411.html 9
  • 10. 10
  • 12. Sur le « host », la commande « docker » fait office « d’ hyperviseur » 12
  • 13. root@server:/home/mathieu# docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world root@server:/home/mathieu# Je lance : 13
  • 14. root@server:/home/mathieu# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@server:/home/mathieu# Et j’ai… Ben, rien 14
  • 15. Je re-lance ! root@server:/home/mathieu# docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 23d69e6697115fa93b90b1e891218bebd9aa7156c853b18092bb05f81f012d26 root@server:/home/mathieu# 15
  • 16. root@server:/home/mathieu# docker ps CONTAINER ID IMAGE COMMAND 23d69e669711 ubuntu:14.04 "/bin/sh -c 'while t CREATED STATUS PORTS NAMES 33 seconds ago Up 32 seconds tender_lumiere root@server:/home/mathieu# Et j’ai… Un container en exécution ! 16
  • 17. Mon container tourne tout le temps que le(s) processus lancé existe 17
  • 18. Cas concret : construisons une image 18
  • 19. Je lance root@server:/home/mathieu# docker run -t -i ubuntu:14.04 /bin/bash root@a16a05633b78:/# (-t : tty, -i : interactif) root@a16a05633b78:/# apt-get update … root@a16a05633b78:/# apt-get install default-jre … root@a16a05633b78:/opt# wget http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat- 7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz root@a16a05633b78:/opt# tar xvf apache-tomcat-7.0.56.tar.gz root@a16a05633b78:/opt/apache-tomcat-7.0.56/bin# ./startup.sh ... Tomcat started. 19
  • 21. root@server:/# docker ps CONTAINER ID IMAGE COMMAND a16a05633b78 ubuntu:14.04 "/bin/bash” CREATED STATUS PORTS NAMES 20 minutes ago Up 20 minutes dreamy_meitner root@server:/# root@server:/# docker commit -m="installed tomcat" -a="Mathieu Passenaud" a16a05633b78 ubuntu/tomcat On sauvegarde l’image 21
  • 22. Mon image existe ! root@server:/home/mathieu# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu/tomcat latest e63854b1dca1 3 minutes ago 583.9 MB ubuntu 14.04 6b4e8a7373fe 10 days ago 194.9 MB base latest b750fe79269d 18 months ago 175.3 MB root@server:/home/mathieu# 22
  • 23. Je lance root@server:/# docker run -p 8080:8080 ubuntu/tomcat /bin/sh -c "/opt/apache-tomcat- 7.0.56/bin/catalina.sh run" Oct 11, 2014 11:15:39 PM org.apache.catalina.core.AprLifecycleListener org.apache.catalina.startup.HostConfig deployDirectory … Oct 11, 2014 11:15:46 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 5395 ms 23
  • 25. Maintenant on scripte # This is a comment FROM ubuntu:14.04 MAINTAINER Mathieu Passenaud <mathieu.passenaud@gmail.com> RUN apt-get update && apt-get install -y default-jre wget RUN wget http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat- 7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz -O /opt/apache-tomcat-7.0.56.tar.gz RUN tar xvf /opt/apache-tomcat-7.0.56.tar.gz --directory=/opt/ root@server:/dockerimages/ubuntuTomcat# docker build . 25
  • 26. # This is a comment FROM ubuntu/tomcat:latest MAINTAINER Mathieu Passenaud <mathieu.passenaud@gmail.com> RUN /opt/apache-tomcat-7.0.56/bin/startup.sh 26
  • 27. Facilitons nous la vie, dès maintenant 27
  • 28. 28
  • 29. 29
  • 30. 30
  • 32. Architecture • Apache en frontal • Application web tomcat • Base de données mysql 32
  • 33. Avant - Avant • Debian 5.0 • apt-get install apache mysql-server tomcat • … • 5 jours plus tard après debug, openjdk et configuration, ça marche 33
  • 34. Avant • VMWare => ubuntu server 14.04 • Wget tomcat • Apt-get install apache mysql-server • Clone/transport de la VM vers la prod 34
  • 35. Maintenant • Un serveur debian 7.0 apache frontal, openSSL à jour derrière firewall + LB • Un/des serveur(s) ubuntu 14.04, Java 1.7 + tomcat 7.0 (clone de machine de dev) • Un serveur CentOS Mysql, construit depuis un export d’une base mysql locale à la machine de dev • Ma machine de dev est dimensionnée comme une machine de prod, je deviens DevOPS 35
  • 36. Apache2 + LB Tomcat MySQL Tomcat Tomcat VMWARE Matos de fou furieux Vsphere/Vcloud ???? CENTOS Ubuntu Debian CALL PBEAU ou MLEN 36
  • 37. Plus tard ??? • Boot2Docker sur la machine de dev • Docker sur un serveur de prod • Un container, basé sur debian 7.0 apache frontal, openSSL à jour derrière firewall + LB • Un container, basé sur ubuntu 14.04, Java 1.7 + tomcat 7.0 • Un container, basé sur CentOS Mysql 37
  • 38. Apache2 + LB Tomcat MySQL Tomcat Tomcat Docker Matos de fou furieux + OS CALL PBEAU ou MLEN 38
  • 39. Mais il nous manque 3 choses • Comment je fais en dev ? • Comment je rends le truc « scalable » ? • Comment je fais communiquer mes containers ? 39
  • 40. Comment je fais en dev ? • J’installe un docker – Apt-get install docker – Boot2docker : http://boot2docker.io/ 40
  • 41. Comment je fais en dev ? • J’arrête mes VM VMWare/VirtualBox • Je travaille UNIQUEMENT dans des containers • J’hésite pas à en faire plein de versions (comme des snapshots) • J’exporte un tar.gz pour déployer en recette et en production 41
  • 42. Boot2Docker • http://boot2docker.io/ • VirtualBox + VM linux + docker • Client Docker dans la console 42
  • 43. 43
  • 44. 44
  • 45. 45
  • 46. Comment je rends le truc scalable ? • https://docs.docker.com/swarm/ • http://www.sebastien- han.fr/blog/2013/10/31/build-a-paas-zone- within-your-openstack-cloud/ • http://docs.openstack.org/developer/devstac k/ • https://labs.runabove.com/docker/ • http://shipyard-project.com/ 46
  • 47. Apache2 + LB Tomcat MySQL Tomcat Tomcat Docker + Swarm CALL PBEAU ou MLEN Matos de fou furieux + OS Matos de fou furieux + OS Matos de fou furieux + OS Matos de fou furieux + OS 47
  • 48. Comment je fais communiquer les containers entre eux ? • -p 80:8080 – Redirection de port entre le hôte et le container • Il existe un réseau interne entre containers • Docker Links : – https://docs.docker.com/userguide/dockerlinks/ – Nommer les containers à la création : --name web – Puis le lier avec un autre : --link db:db 48
  • 49. Apache2 + LB Tomcat MySQL Tomcat Tomcat Docker + Swarm Matos de fou furieux + OS Matos de fou furieux + OS Matos de fou furieux + OS Matos de fou furieux + OS 49
  • 50. Et pour l’existant et les récalcitrants ? • Rancher – rancher.com 50
  • 51. Rancher • Exporte une VM existante • Fait tourner KVM dans des containers • + GUI 51
  • 52. 52
  • 53. 53