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

Preview:

Citation preview

Introduction et utilisation en productionAlexandre Di Pino - 10 mars 2015

Sommaire

• Présentation

• Exemple d’utilisation

• Retour d’experience

• À venir

/me

• Alexandre Di Pino

• Ingénieur R&D @ InSimo

• Mail : alexandre.dipino@gmail.com

• Twitter : @a_dipino

Présentation

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

Exemple d’utilisation

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 :

Sous Linux

- curl -sSL https://get.docker.com/ubuntu/ | sudo sh

- On teste : sudo docker run -i -t ubuntu bash

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

Exemple 2 : Ajoutons des fichiers

• -v mon/dossier/local:mon/dossier/dans/le/conteneur:ro

Règle d’or : une app par container

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

Les volumes

• -v mon/dossier/local:mon/dossier/dans/le/conteneur

• --volumes-from web

C’est bien beau tout ça mais je fais quoi

si aucune des images ne

correspond à mes besoins?

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 »

Les bonnes pratiques

• Ne pas installer de packages inutiles

• RUN apt-get update && apt-get install -y

Retour d’experience

Sources : - svn - git

Fichiers : - Owncloud

Autres : - Site - Trac - Tests

Serveur

À venir …

Docker Compose• Création d’applications complexe

• Fichier de configuration docker-compose.yml

• Commande : docker-composer up

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 )

Docker Swarm (beta)

• Cluster natif pour docker

• Transforme pool d’hosts Docker en un seul virtuel

• docker pull swarm

Un conseil avant de finir

Questions ?

Recommended