29
Introduction et utilisation en production Alexandre Di Pino - 10 mars 2015

Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

Embed Size (px)

Citation preview

Page 1: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

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]

Sommaire

• Présentation

• Exemple d’utilisation

• Retour d’experience

• À venir

Page 3: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

/me

• Alexandre Di Pino

• Ingénieur R&D @ InSimo

• Mail : [email protected]

• Twitter : @a_dipino

Page 4: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

Présentation

Page 5: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]
Page 6: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]
Page 7: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]
Page 8: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]
Page 9: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

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]

Exemple d’utilisation

Page 11: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

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]

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]

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]

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]

Règle d’or : une app par container

Page 16: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

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]

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]

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]

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]

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]

Retour d’experience

Page 22: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

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]
Page 24: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

À venir …

Page 25: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

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]

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]

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]

Un conseil avant de finir

Page 29: Introduction à Docker et utilisation en production /Digital apéro Besançon [10/03/2015]

Questions ?