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
• Applicat...
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
▪ Faci...
Comparaison VM / Docker
App
Bin / Lib
OS invité
Hyperviseur
OS hôte
Serveur physique
Bin / Lib
OS invité
App
Bin / Lib
OS ...
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...
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)
Dock...
CORE CONCEPTS
Control groups (a.k.a cgroups)
Contrôler/limiter les ressources utilisées par un container (cpu, mémoire, ...)
https://doc...
NAMESPACE
Un “container” est un terme générique qui désigne un ensemble de namespace
docker run alpine ps aux
docker run a...
CAPABILITIES
Permet de donner plus ou moins de privilèges système à un container : en
rapport avec l’aspect sécurité
--cap...
IMAGES
Système de et fichier
méta données
docker images [--all]
docker images | grep alpine # notez l'identifiant de l'ima...
VOLUMES
docker run --name mysql 
-v /my/custom:/etc/mysql/conf.d 
-v /my/own/datadir:/var/lib/mysql 
-e MYSQL_ROOT_PASSWOR...
Registry
stockage des images, push/pull
HUB
gestion utilisateurs, authentification …
Api
Contrôle du daemon Docker via API...
Dockerfile
git clone https://github.com/revollat/hello-world
# compiler assembleur (faut nasm sur votre machine)
make
# Cr...
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 !
Docker nice meetup #1   construire, déployer et exécuter vos applications, partout !
Prochain SlideShare
Chargement dans…5
×

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

1 226 vues

Publié le

Premier Meetup Docker sur Nice. A cette occasion nous nous retrouverons dans les locaux d’Epitech Nice pour une conférence suivie d'ateliers.

En partenariat avec :
- Epitech Nice
- Gandi
- Wizishop

http://www.meetup.com/Docker-Nice/events/222345639/

Publié dans : Données & analyses
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 226
Sur SlideShare
0
Issues des intégrations
0
Intégrations
17
Actions
Partages
0
Téléchargements
59
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • a finir de remplir
  • Je pense qu’il serait mieux de faire ce slide pendant l’attelier ?
  • Docker nice meetup #1 construire, déployer et exécuter vos applications, partout !

    1. 1. CONSTRUIRE, DEPLOYER EXÉCUTER VOS APPLICATIONS PARTOUT! @gandi_net @wizishop @epitechnice @dockernice #1 #dockernice
    2. 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. 3. Damien Lallement Directeur Pédagogique à Epitech Nice et manager du chapitre while42 de Nice
    4. 4. Qu'est ce que Docker René Cotton CTO WiziShop
    5. 5. Le tableau infernal du déploiement
    6. 6. Le tableau infernal du transport
    7. 7. La solution pour le transport
    8. 8. Le tableau devient limpide
    9. 9. La solution pour le deploiement
    10. 10. Le tableau devient limpide ici aussi
    11. 11. Définition Build, Ship and Run Any App, Anywhere
    12. 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. 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. 14. Je peux me debarrasser des VMs ? Non!Pas encore…
    15. 15. Quelques chiffres
    16. 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. 17. Dernière levé de fond à ajouter aux 40 millions en septembre dernier 95 000 000 $
    18. 18. Olivier Revollat Développeur web pour la ville de Nice ARCHITECTURE
    19. 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
    20. 20. CORE CONCEPTS
    21. 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. 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. 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. 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. 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. 26. Registry stockage des images, push/pull HUB gestion utilisateurs, authentification … Api Contrôle du daemon Docker via API HTTP RESTful
    27. 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
    28. 28. INSTALLATION René Cotton CTO WiziShop
    29. 29. SWARM Olivier Revollat Développeur web pour la ville de Nice
    30. 30. Merci! DES QUESTIONS? @gandi_net @wizishop @epitechnice @dockernice

    ×