introduction à docker et utilisation en production /digital apéro besançon [10/03/2015]
TRANSCRIPT
![Page 1: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/1.jpg)
Introduction et utilisation en productionAlexandre Di Pino - 10 mars 2015
![Page 2: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/2.jpg)
Sommaire
• Présentation
• Exemple d’utilisation
• Retour d’experience
• À venir
![Page 4: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/4.jpg)
Présentation
![Page 5: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/5.jpg)
![Page 6: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/6.jpg)
![Page 7: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/7.jpg)
![Page 8: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/8.jpg)
![Page 9: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/9.jpg)
Haut niveau• Utilisation de LXC et cgroups introduit par
le kernel 2.6.24 (Noyau 3.10 minimum)
• Tourne sur le kernel système
• Utilise très peu de ressource face à un VM
• Utilisation de snapshots
• Open source (Apache 2) Ne fonctionne que sous linux, pour le
moment
![Page 10: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/10.jpg)
Exemple d’utilisation
![Page 11: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/11.jpg)
Je travaille sous Windows ou MacOS ? No problem !
• 30Mo
• Docker prêt à l’utilisation
• Utilise Virtual Box
• Partage facile des fichiers entre la VM et l’hôte
Boot2docker :
![Page 12: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/12.jpg)
Sous Linux
- curl -sSL https://get.docker.com/ubuntu/ | sudo sh
- On teste : sudo docker run -i -t ubuntu bash
![Page 13: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/13.jpg)
Exemple 1 : NGINX et MYSQL
sudo docker run -d -P --name web nginx
sudo docker run -d -e MYSQL_ROOT_PASSWORD=toto -P --name database mysql
![Page 14: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/14.jpg)
Exemple 2 : Ajoutons des fichiers
• -v mon/dossier/local:mon/dossier/dans/le/conteneur:ro
![Page 15: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/15.jpg)
Règle d’or : une app par container
![Page 16: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/16.jpg)
Exemple 3 : Les links
docker run -e MYSQL_ROOT_PASSWORD=toto --name db -v /home/mysql/:/var/lib/mysql/ -d mysql
docker run --name nginx --link db:mysql -v /home/wp/:/var/www/html/ -p 80:80 -d nginx
![Page 17: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/17.jpg)
Les volumes
• -v mon/dossier/local:mon/dossier/dans/le/conteneur
• --volumes-from web
![Page 18: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/18.jpg)
C’est bien beau tout ça mais je fais quoi
si aucune des images ne
correspond à mes besoins?
![Page 19: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/19.jpg)
Les dockerfiles• Construire des images à partir d’un fichier
• docker build
• Format : INSTRUCTION arguments
• FROM, MAINTAINER, RUN, CMD, EXPOSE, ENV, ADD, COPY, ENTRYPOINT, VOLUME, USER, WORKDIR
• Créer une « base image »
![Page 20: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/20.jpg)
Les bonnes pratiques
• Ne pas installer de packages inutiles
• RUN apt-get update && apt-get install -y
![Page 21: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/21.jpg)
Retour d’experience
![Page 22: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/22.jpg)
Sources : - svn - git
Fichiers : - Owncloud
Autres : - Site - Trac - Tests
Serveur
![Page 23: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/23.jpg)
![Page 24: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/24.jpg)
À venir …
![Page 25: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/25.jpg)
Docker Compose• Création d’applications complexe
• Fichier de configuration docker-compose.yml
• Commande : docker-composer up
![Page 26: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/26.jpg)
Docker Machine (beta)• Création d’host sur votre ordinateur, le cloud ou votre propre data
center
• docker-machine create --driver virtualbox dev
• docker $(docker-machine config dev) run busybox
• Drivers disponible pour la plupart des services clouds (AWS, Digital Ocean, Google Compute Engine, Azure, OpenStack, Rackspace ou VMWare )
![Page 27: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/27.jpg)
Docker Swarm (beta)
• Cluster natif pour docker
• Transforme pool d’hosts Docker en un seul virtuel
• docker pull swarm
![Page 28: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/28.jpg)
Un conseil avant de finir
![Page 29: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]](https://reader033.vdocuments.mx/reader033/viewer/2022052509/55c10b8fbb61eb85348b4641/html5/thumbnails/29.jpg)
Questions ?