SlideShare une entreprise Scribd logo
1  sur  32
CONSTRUIRE,
DEPLOYER EXÉCUTER
VOS APPLICATIONS
PARTOUT!
@gandi_net @wizishop @epitechnice @dockernice
#1 #dockernice
Conférence
• Qu'est ce que Docker
• Installation / Architecture
• Déploiement d’un cluster avec swarm.
Ateliers
• Application X11 dans docker
• Environnement de dev avec docker-compose
Adrien Schaller
Sysadmin Orange HEBEX CCL
Damien Lallement
Directeur Pédagogique à Epitech Nice
et manager du chapitre while42 de
Nice
Qu'est ce que Docker
René Cotton
CTO WiziShop
Le tableau infernal du déploiement
Le tableau infernal du transport
La solution pour le transport
Le tableau devient limpide
La solution pour le deploiement
Le tableau devient limpide ici aussi
Définition
Build, Ship and Run
Any App, Anywhere
Qu'est ce que Docker
▪ Embarquer une application dans un container virtuel
exécutable sur tout type d’environnement
▪ Faciliter les déploiements d'une application, et la gestion
du dimensionnement de l'infrastructure sous-jacente
▪ Open source (sous licence Apache 2.0)
▪ Société américaine, qui a été lancée par le Français
Solomon Hykes.
Comparaison VM / Docker
App
Bin / Lib
OS invité
Hyperviseur
OS hôte
Serveur physique
Bin / Lib
OS invité
App
Bin / Lib
OS invité
App
App
Bin / Lib
OS hôte
Serveur physique
Bin / Lib Bin / Lib
AppApp
Virtualisation Containers
Je peux me debarrasser des VMs ?
Non!Pas encore…
Quelques chiffres
2 ansAge de la société
25 MoTaille nécessaire pour installer Boot2Docker sur
votre machine
45 300Nombre de container publié par les utilisateurs sur
le HUB
Dernière levé de fond à ajouter aux 40 millions en septembre dernier
95 000 000 $
Olivier Revollat
Développeur web pour la ville de
Nice
ARCHITECTURE
Containers
▪ Virtualisation légère de processus
▪ Isolation fournie par les fonctionnalités du noyau Linux
(v. >3.10)
Docker
▪ Portabilité des containers
▪ Concept d'images
CORE CONCEPTS
Control groups (a.k.a cgroups)
Contrôler/limiter les ressources utilisées par un container (cpu, mémoire, ...)
https://docs.docker.com/reference/run/#runtime-constraints-on-cpu-and-memory
-m="": Memory limit (format: <number><optional unit>, where unit = b, k, m or g)
-memory-swap="": Total memory limit (memory + swap, format: <number><optional unit>)
-c, --cpu-shares=0 CPU shares (relative weight)
NAMESPACE
Un “container” est un terme générique qui désigne un ensemble de namespace
docker run alpine ps aux
docker run alpine ip addr show
docker run --net=host alpine ip addr show
docker run --net=none alpine ip addr show
docker run alpine mount
● The pid namespace: Used for process isolation (PID: Process ID).
● The net namespace: Used for managing network interfaces (NET: Networking).
● The ipc namespace: Used for managing access to IPC resources (IPC: InterProcess
Communication).
● The mnt namespace: Used for managing mount-points (MNT: Mount).
● ​User namespace : mapping UID container <--> host. Non encore implémenté.
CAPABILITIES
Permet de donner plus ou moins de privilèges système à un container : en
rapport avec l’aspect sécurité
--cap-add: Add Linux capabilities
--cap-drop: Drop Linux capabilities
--privileged=false: Give extended privileges to this container
--device=[]: Allows you to run devices inside the container without the --privileged flag.
Ex.:
docker run --device=/dev/snd:/dev/snd ...
docker run --cap-add=ALL --cap-drop=MKNOD ...
● Par défaut les container sont lancés sans privilèges
● Ex de capabilities : mount operation, raw sokets (packet spoofing), creation device, load
module kernel, …
● http://man7.org/linux/man-pages/man7/capabilities.7.html
IMAGES
Système de et fichier
méta données
docker images [--all]
docker images | grep alpine # notez l'identifiant de l'image
docker run -t -i alpine sh # editer un fichier dans container
# Si on sort du container à ce stade la modif est perdue
# Pour la rendre durable :
docker commit -m "edition d'un fichier" <ID_CONTAINER> revollat/alpine
# Créer à partir d'une archive
cat exampleimage.tgz | docker import - exampleimagelocal:new
● Métaphore : en POO la Classe est à l'image ce
que l'instance objet est au container
● Couches (layers) /union FS / "lecture-seul"
● Copy-On-Write pour écriture
● Multiples container / Images unique / Ecriture du
delta
Visualiser les couches : https://imagelayers.io/?images=revollat%2Fh2o:latest
VOLUMES
docker run --name mysql 
-v /my/custom:/etc/mysql/conf.d 
-v /my/own/datadir:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
● Partage de données entre plusieurs containers
● Partage de données entre l'hote et le container
● bypass Union FS
● Persistent (même si un container est arrête)
Registry
stockage des images, push/pull
HUB
gestion utilisateurs, authentification …
Api
Contrôle du daemon Docker via API HTTP RESTful
Dockerfile
git clone https://github.com/revollat/hello-world
# compiler assembleur (faut nasm sur votre machine)
make
# Créer une image vide :)
tar cv --files-from /dev/null | docker import - vide
# voir Dockerfile
# Build à partir du Dockerfile
docker build -t revollat/hello-epitech .
# Taille de l'image --> 225 Octets, qui dit mieux ?
# Exécution
docker run revollat/hello-epitech
# Envoi sur le Hub
docker push revollat/hello-epitech
# De votre coté
docker run revollat/hello-epitech
Construisons le plus petit Container du monde et revoyons les notions abordées
INSTALLATION
René Cotton
CTO WiziShop
SWARM
Olivier Revollat
Développeur web pour la ville de
Nice
Merci!
DES QUESTIONS?
@gandi_net @wizishop @epitechnice @dockernice
Docker nice meetup #1   construire, déployer et exécuter vos applications, partout !

Contenu connexe

Tendances

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 du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalitéZenika
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
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
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?ALTER WAY
 
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
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte Zenika
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?Membré Guillaume
 
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é
 
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
 
Varnish & blue/green deployments
Varnish & blue/green deploymentsVarnish & blue/green deployments
Varnish & blue/green deploymentsOxalide
 
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
 
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Alexis Ducastel
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerNizar GARRACHE
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesChristophe Furmaniak
 

Tendances (20)

Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
 
Intro docker
Intro dockerIntro docker
Intro docker
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
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
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
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 ...
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
 
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]
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
 
Varnish & blue/green deployments
Varnish & blue/green deploymentsVarnish & blue/green deployments
Varnish & blue/green deployments
 
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
 
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
 
Gdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetesGdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetes
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 

En vedette

DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
La face cachée de la mesure : une opportunité pour votre amélioration continue
La face cachée de la mesure : une opportunité pour votre amélioration continueLa face cachée de la mesure : une opportunité pour votre amélioration continue
La face cachée de la mesure : une opportunité pour votre amélioration continueAgile Tour Genève
 
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentalsmvetro
 
Offre en France Symop _ Mesure, Contrôle & Vision (ENOVA 2014)
Offre en France Symop _ Mesure, Contrôle & Vision (ENOVA 2014) Offre en France Symop _ Mesure, Contrôle & Vision (ENOVA 2014)
Offre en France Symop _ Mesure, Contrôle & Vision (ENOVA 2014) SYMOP
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerRoberto Messora
 
Spark / Mesos Cluster Optimization
Spark / Mesos Cluster OptimizationSpark / Mesos Cluster Optimization
Spark / Mesos Cluster Optimizationebiznext
 
Gérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerGérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerJulien Dubois
 
IoT Toulouse : introduction à mqtt
IoT Toulouse : introduction à mqttIoT Toulouse : introduction à mqtt
IoT Toulouse : introduction à mqttJulien Vermillard
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Des principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreDes principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreStephane Manciot
 
Les principes de la mesure
Les principes de la mesureLes principes de la mesure
Les principes de la mesureAntarès
 
Debugging (Docker) containers in production
Debugging (Docker) containers in productionDebugging (Docker) containers in production
Debugging (Docker) containers in productionbcantrill
 
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Stephane Manciot
 
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...Amazon Web Services
 
REX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec DockerREX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec DockerYannig Perre
 
Bring N-Tier Apps to containers 2015 ContainerCon
Bring N-Tier Apps to containers  2015 ContainerConBring N-Tier Apps to containers  2015 ContainerCon
Bring N-Tier Apps to containers 2015 ContainerConChris Haddad
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOpsJeoffrey Bauvin
 

En vedette (20)

DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
La face cachée de la mesure : une opportunité pour votre amélioration continue
La face cachée de la mesure : une opportunité pour votre amélioration continueLa face cachée de la mesure : une opportunité pour votre amélioration continue
La face cachée de la mesure : une opportunité pour votre amélioration continue
 
Docker Presentation
Docker PresentationDocker Presentation
Docker Presentation
 
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentals
 
Utilizando Docker para escalonar aplicações Node.Js
Utilizando Docker para escalonar aplicações Node.JsUtilizando Docker para escalonar aplicações Node.Js
Utilizando Docker para escalonar aplicações Node.Js
 
Offre en France Symop _ Mesure, Contrôle & Vision (ENOVA 2014)
Offre en France Symop _ Mesure, Contrôle & Vision (ENOVA 2014) Offre en France Symop _ Mesure, Contrôle & Vision (ENOVA 2014)
Offre en France Symop _ Mesure, Contrôle & Vision (ENOVA 2014)
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
Docker
Docker Docker
Docker
 
Spark / Mesos Cluster Optimization
Spark / Mesos Cluster OptimizationSpark / Mesos Cluster Optimization
Spark / Mesos Cluster Optimization
 
Gérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerGérer son environnement de développement avec Docker
Gérer son environnement de développement avec Docker
 
IoT Toulouse : introduction à mqtt
IoT Toulouse : introduction à mqttIoT Toulouse : introduction à mqtt
IoT Toulouse : introduction à mqtt
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Des principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreDes principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvre
 
Les principes de la mesure
Les principes de la mesureLes principes de la mesure
Les principes de la mesure
 
Debugging (Docker) containers in production
Debugging (Docker) containers in productionDebugging (Docker) containers in production
Debugging (Docker) containers in production
 
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
 
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
 
REX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec DockerREX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec Docker
 
Bring N-Tier Apps to containers 2015 ContainerCon
Bring N-Tier Apps to containers  2015 ContainerConBring N-Tier Apps to containers  2015 ContainerCon
Bring N-Tier Apps to containers 2015 ContainerCon
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOps
 

Similaire à Docker nice meetup #1 construire, déployer et exécuter vos applications, partout !

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
 
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
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
Présentation CoreOS
Présentation CoreOSPrésentation CoreOS
Présentation CoreOSgcatt
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugamine17157
 
Docker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiqueDocker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiquesdenier
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxAnisSalhi3
 
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...Paris Open Source Summit
 
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
 
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
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation ConteneurisationTADx
 
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
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack dockerAlexis Ducastel
 
Comment remplacer cygwin par docker
Comment remplacer cygwin par dockerComment remplacer cygwin par docker
Comment remplacer cygwin par dockerNicolas Trauwaen
 
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
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printempsJulien Maitrehenry
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Aurelien Navarre
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureParis Container Day
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de dockerjean pasqualini
 

Similaire à Docker nice meetup #1 construire, déployer et exécuter vos applications, partout ! (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 ?
 
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
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Présentation CoreOS
Présentation CoreOSPrésentation CoreOS
Présentation CoreOS
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
Docker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiqueDocker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatique
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
 
What is Docker
What is Docker What is Docker
What is Docker
 
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
 
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
 
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
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation Conteneurisation
 
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...
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack docker
 
Comment remplacer cygwin par docker
Comment remplacer cygwin par dockerComment remplacer cygwin par docker
Comment remplacer cygwin par docker
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printemps
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de docker
 

Docker nice meetup #1 construire, déployer et exécuter vos applications, partout !

  • 1. CONSTRUIRE, DEPLOYER EXÉCUTER VOS APPLICATIONS PARTOUT! @gandi_net @wizishop @epitechnice @dockernice #1 #dockernice
  • 2. Conférence • Qu'est ce que Docker • Installation / Architecture • Déploiement d’un cluster avec swarm. Ateliers • Application X11 dans docker • Environnement de dev avec docker-compose Adrien Schaller Sysadmin Orange HEBEX CCL
  • 3. Damien Lallement Directeur Pédagogique à Epitech Nice et manager du chapitre while42 de Nice
  • 4. Qu'est ce que Docker René Cotton CTO WiziShop
  • 5. Le tableau infernal du déploiement
  • 6. Le tableau infernal du transport
  • 7. La solution pour le transport
  • 9. La solution pour le deploiement
  • 10. Le tableau devient limpide ici aussi
  • 11. Définition Build, Ship and Run Any App, Anywhere
  • 12. Qu'est ce que Docker ▪ Embarquer une application dans un container virtuel exécutable sur tout type d’environnement ▪ Faciliter les déploiements d'une application, et la gestion du dimensionnement de l'infrastructure sous-jacente ▪ Open source (sous licence Apache 2.0) ▪ Société américaine, qui a été lancée par le Français Solomon Hykes.
  • 13. Comparaison VM / Docker App Bin / Lib OS invité Hyperviseur OS hôte Serveur physique Bin / Lib OS invité App Bin / Lib OS invité App App Bin / Lib OS hôte Serveur physique Bin / Lib Bin / Lib AppApp Virtualisation Containers
  • 14. Je peux me debarrasser des VMs ? Non!Pas encore…
  • 16. 2 ansAge de la société 25 MoTaille nécessaire pour installer Boot2Docker sur votre machine 45 300Nombre de container publié par les utilisateurs sur le HUB
  • 17. Dernière levé de fond à ajouter aux 40 millions en septembre dernier 95 000 000 $
  • 18. Olivier Revollat Développeur web pour la ville de Nice ARCHITECTURE
  • 19. Containers ▪ Virtualisation légère de processus ▪ Isolation fournie par les fonctionnalités du noyau Linux (v. >3.10) Docker ▪ Portabilité des containers ▪ Concept d'images
  • 21. Control groups (a.k.a cgroups) Contrôler/limiter les ressources utilisées par un container (cpu, mémoire, ...) https://docs.docker.com/reference/run/#runtime-constraints-on-cpu-and-memory -m="": Memory limit (format: <number><optional unit>, where unit = b, k, m or g) -memory-swap="": Total memory limit (memory + swap, format: <number><optional unit>) -c, --cpu-shares=0 CPU shares (relative weight)
  • 22. NAMESPACE Un “container” est un terme générique qui désigne un ensemble de namespace docker run alpine ps aux docker run alpine ip addr show docker run --net=host alpine ip addr show docker run --net=none alpine ip addr show docker run alpine mount ● The pid namespace: Used for process isolation (PID: Process ID). ● The net namespace: Used for managing network interfaces (NET: Networking). ● The ipc namespace: Used for managing access to IPC resources (IPC: InterProcess Communication). ● The mnt namespace: Used for managing mount-points (MNT: Mount). ● ​User namespace : mapping UID container <--> host. Non encore implémenté.
  • 23. CAPABILITIES Permet de donner plus ou moins de privilèges système à un container : en rapport avec l’aspect sécurité --cap-add: Add Linux capabilities --cap-drop: Drop Linux capabilities --privileged=false: Give extended privileges to this container --device=[]: Allows you to run devices inside the container without the --privileged flag. Ex.: docker run --device=/dev/snd:/dev/snd ... docker run --cap-add=ALL --cap-drop=MKNOD ... ● Par défaut les container sont lancés sans privilèges ● Ex de capabilities : mount operation, raw sokets (packet spoofing), creation device, load module kernel, … ● http://man7.org/linux/man-pages/man7/capabilities.7.html
  • 24. IMAGES Système de et fichier méta données docker images [--all] docker images | grep alpine # notez l'identifiant de l'image docker run -t -i alpine sh # editer un fichier dans container # Si on sort du container à ce stade la modif est perdue # Pour la rendre durable : docker commit -m "edition d'un fichier" <ID_CONTAINER> revollat/alpine # Créer à partir d'une archive cat exampleimage.tgz | docker import - exampleimagelocal:new ● Métaphore : en POO la Classe est à l'image ce que l'instance objet est au container ● Couches (layers) /union FS / "lecture-seul" ● Copy-On-Write pour écriture ● Multiples container / Images unique / Ecriture du delta Visualiser les couches : https://imagelayers.io/?images=revollat%2Fh2o:latest
  • 25. VOLUMES docker run --name mysql -v /my/custom:/etc/mysql/conf.d -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql ● Partage de données entre plusieurs containers ● Partage de données entre l'hote et le container ● bypass Union FS ● Persistent (même si un container est arrête)
  • 26. Registry stockage des images, push/pull HUB gestion utilisateurs, authentification … Api Contrôle du daemon Docker via API HTTP RESTful
  • 27. Dockerfile git clone https://github.com/revollat/hello-world # compiler assembleur (faut nasm sur votre machine) make # Créer une image vide :) tar cv --files-from /dev/null | docker import - vide # voir Dockerfile # Build à partir du Dockerfile docker build -t revollat/hello-epitech . # Taille de l'image --> 225 Octets, qui dit mieux ? # Exécution docker run revollat/hello-epitech # Envoi sur le Hub docker push revollat/hello-epitech # De votre coté docker run revollat/hello-epitech Construisons le plus petit Container du monde et revoyons les notions abordées
  • 29.
  • 31. Merci! DES QUESTIONS? @gandi_net @wizishop @epitechnice @dockernice

Notes de l'éditeur

  1. a finir de remplir
  2. Je pense qu’il serait mieux de faire ce slide pendant l’attelier ?