SlideShare une entreprise Scribd logo
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 printemps
Web à 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.pdf
Pascal Ponzoni
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
Nicolas Muller
 
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
Julien Wittouck
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de docker
jean pasqualini
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
Jaouad Assabbour
 
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.io
Nicolas 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 à docker
Boubker ABERWAG
 
Vagrant - Concept
Vagrant - ConceptVagrant - Concept
Vagrant - Concept
Julien Dubreuil
 
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 jhuhiuguigugyug
amine17157
 
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 2016
Fabien 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 shift
Arthur Lutz
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
Nizar 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

ch03.ppt ch03.pptch03.pptch03.pptch03.pptch03.ppt
ch03.ppt ch03.pptch03.pptch03.pptch03.pptch03.pptch03.ppt ch03.pptch03.pptch03.pptch03.pptch03.ppt
ch03.ppt ch03.pptch03.pptch03.pptch03.pptch03.ppt
AbdellahELMAMOUN
 
ch02 ch02 ch02 ch02 ch02 ch02 ch02 ch02 .ppt
ch02 ch02 ch02 ch02 ch02 ch02 ch02 ch02 .pptch02 ch02 ch02 ch02 ch02 ch02 ch02 ch02 .ppt
ch02 ch02 ch02 ch02 ch02 ch02 ch02 ch02 .ppt
AbdellahELMAMOUN
 
ch01 ch01 ch01 ch01 ch01 ch01 ch01 ch01.ppt
ch01 ch01 ch01 ch01 ch01 ch01 ch01 ch01.pptch01 ch01 ch01 ch01 ch01 ch01 ch01 ch01.ppt
ch01 ch01 ch01 ch01 ch01 ch01 ch01 ch01.ppt
AbdellahELMAMOUN
 
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdfAGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AbdellahELMAMOUN
 
cours-demarrage cours-demarrage.pdfcours-demarrage.pdf.pdf
cours-demarrage cours-demarrage.pdfcours-demarrage.pdf.pdfcours-demarrage cours-demarrage.pdfcours-demarrage.pdf.pdf
cours-demarrage cours-demarrage.pdfcours-demarrage.pdf.pdf
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.pdf
AbdellahELMAMOUN
 
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
AbdellahELMAMOUN
 
mod_article25173409_1_mod_article25173409.ppt
mod_article25173409_1_mod_article25173409.pptmod_article25173409_1_mod_article25173409.ppt
mod_article25173409_1_mod_article25173409.ppt
AbdellahELMAMOUN
 
firewall firewall firewall firewall .pptx
firewall firewall firewall firewall .pptxfirewall firewall firewall firewall .pptx
firewall firewall firewall firewall .pptx
AbdellahELMAMOUN
 
1536524 1536524 1536524 1536524 1536524.ppt
1536524  1536524 1536524  1536524 1536524.ppt1536524  1536524 1536524  1536524 1536524.ppt
1536524 1536524 1536524 1536524 1536524.ppt
AbdellahELMAMOUN
 
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
AbdellahELMAMOUN
 
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
AbdellahELMAMOUN
 
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
AbdellahELMAMOUN
 
Linux_Gestion_logiciels_Paquetage_chapitre05
Linux_Gestion_logiciels_Paquetage_chapitre05Linux_Gestion_logiciels_Paquetage_chapitre05
Linux_Gestion_logiciels_Paquetage_chapitre05
AbdellahELMAMOUN
 
DevOps+Docker+Engine simulation mode.pptx
DevOps+Docker+Engine simulation mode.pptxDevOps+Docker+Engine simulation mode.pptx
DevOps+Docker+Engine simulation mode.pptx
AbdellahELMAMOUN
 

Plus de AbdellahELMAMOUN (15)

ch03.ppt ch03.pptch03.pptch03.pptch03.pptch03.ppt
ch03.ppt ch03.pptch03.pptch03.pptch03.pptch03.pptch03.ppt ch03.pptch03.pptch03.pptch03.pptch03.ppt
ch03.ppt ch03.pptch03.pptch03.pptch03.pptch03.ppt
 
ch02 ch02 ch02 ch02 ch02 ch02 ch02 ch02 .ppt
ch02 ch02 ch02 ch02 ch02 ch02 ch02 ch02 .pptch02 ch02 ch02 ch02 ch02 ch02 ch02 ch02 .ppt
ch02 ch02 ch02 ch02 ch02 ch02 ch02 ch02 .ppt
 
ch01 ch01 ch01 ch01 ch01 ch01 ch01 ch01.ppt
ch01 ch01 ch01 ch01 ch01 ch01 ch01 ch01.pptch01 ch01 ch01 ch01 ch01 ch01 ch01 ch01.ppt
ch01 ch01 ch01 ch01 ch01 ch01 ch01 ch01.ppt
 
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdfAGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
 
cours-demarrage cours-demarrage.pdfcours-demarrage.pdf.pdf
cours-demarrage cours-demarrage.pdfcours-demarrage.pdf.pdfcours-demarrage cours-demarrage.pdfcours-demarrage.pdf.pdf
cours-demarrage cours-demarrage.pdfcours-demarrage.pdf.pdf
 
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

Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 
Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
caggoune66
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
Billy DEYLORD
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 

Dernier (12)

Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 
Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 

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