1
INTRODUCTION À DOCKER
& sont dans un bateau...
MEETUP WORDPRESS RENNES
29 SEPT. 2016
Yann Nave
2
Qui suis-je
Lead dev web / depuis 11ans chez Dis-Group, Lille
Technos principales : GNU Linux, Apache, MySQL, PHP, ZendFramework, WordPress,
Javascript, jQuery
Depuis 6ans : sites d'actualités basé sur WordPress-Mu, 10 millions visites/mois
Depuis 1an : utilisation de Docker en environnement de développement
Nouveau projet : mise en place d'un stack de dev basé sur Docker, WordPress
(Bedrock), Git
twitter.com/@yannux | yannux@onbebop.net
3
Au programme
Une introduction accessible, concrète, sans trop rentrer dans la technique.
1. Docker pour qui et pour quoi
2. Côté technique
3. Exemples concrets
4. Ce qu'on n'a pas vue
5. Aller plus loin
Pas de chat, mais un chien !
4 . 1
Docker pour qui ?
Toute personne ayant un impact sur la réalisation d'un projet
de la conception à la phase de test.
Développeur / Intégrateur / Chef de projet / Admin Système &
Réseau
Pour ceux qui veullent bidouiller, tester
Pour apprendre, tout simplement
4 . 2
Docker pour quoi ?
Un environnement de développement adapté à chaque projet et identique à la
production
Peut importe son système d'exploitation de base
Effectuer facilement des tests lors de la mise à jours des composants logiciels d'un
serveur ( version de Apache / PHP /MySQL / librairie diverse etc..)
Partager facilement un envrionnement de développement.
Découvrir un langage ou applicatif sans avoir à tout installer directement sur son
système.
5 . 1
Côté technique
À l'usage : similaire à VirtualBox/VMware
Dans les 2 cas on isole des programmes de son système principale
VMware/VirtualBox permettent de créer des machines virtuelles
Docker permet de gérer des containers
Cependant...
Une machine virtuel = OS + environnement applicatif : c'est lourd
Un container = juste environnement applicatif : c'est plus léger !
À usage égale, un container Docker est plus rapide qu'une machine virtuelle
5 . 2
Côté technique - Vocabulaire
Docker utilise essentiellement :
Dockerfile
Fichier texte qui décrit comment créer une image
Image
C'est le modèle qui permettra de créer un/des container(s)
Container
C'est la "boite" qui sera exéctué par Docker pour faire fonctionner votre applicatif
Volume
Il permet de mettre les fichiers de l'application dans une autre "boite", lié au(x)
container(s)
6
Pause questions
?
7 . 1
Exemples concrets
Level 1 : Un pour tous, tous pour un !
Level 2 : Diviser pour mieux régner !
Level 3 : Crash test !
Pour ces exemples nous utiliserons docker-compose qui
permet de créer encore + facilement nos containers !
7 . 2
docker-compose ?
Outil en ligne de commande qui permet de créer
automatiquement des containers et de les lier
entre eux
Utilise un fichier texte qui décrit les containers et
leurs liaisons : docker-compose.yml
8 . 1
Level 1 : Un pour tous, tous pour un !
Les ingrédients :
1 container WordPress en version 4.4
1 container MySQL
Temps de préparation : 5minutes
8 . 2
Level 1 : Un pour tous, tous pour un !
La recette :
wordpress_v44:
image: wordpress:4.4-apache
links:
- mysql_v44
environment:
- WORDPRESS_DB_PASSWORD=password
- WORDPRESS_DB_HOST=mysql_v44:3306
ports:
- "8081:80"
mysql_v44:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=wordpress
9 . 1
Level 2 : Diviser pour mieux régner !
Les ingrédients :
1 container WordPress en version 4.4
1 container MySQL
1 volume qui va contenir le dossier /wp-content de WordPress
Temps de préparation : 5minutes
9 . 2
Level 2 : Diviser pour mieux régner !
La recette :
wordpress_v44volume:
image: wordpress:4.4-apache
links:
- mysql_v44volume
environment:
- WORDPRESS_DB_PASSWORD=password
- WORDPRESS_DB_HOST=mysql_v44volume:3306
ports:
- "8082:80"
working_dir: /var/www/html
volumes:
- ./data/wordpress/wp-content/:/var/www/html/wp-content
mysql_v44volume:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=wordpress
10 . 1
Level 3 : Crash test !
Les ingrédients :
1 container WordPress en version 4.6
1 container MySQL
Notre précédent volume qui contient déjà le dossier /wp-content de WordPress
Temps de préparation : 5minutes
10 . 2
Level 3 : Crash test !
La recette :
wordpress_v46volume:
image: wordpress:4.6-apache
links:
- mysql_v46volume
environment:
- WORDPRESS_DB_PASSWORD=password
- WORDPRESS_DB_HOST=mysql_v46volume:3306
ports:
- "8083:80"
working_dir: /var/www/html
volumes:
- ../LEVEL2/data/wordpress/wp-content/:/var/www/html/wp-content
mysql_v46volume:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=wordpress
11
Ce qu'on a pas vue
Installer Docker sur Windows, Mac OS, GNU Linux /
Docker Hub : pour trouver des images existantes
Tous les outils trop bien (Kitematic, docker-ui, etc...)
Sauvegarder, partager, restaurer facilement un container ou une image
Créer ses images avec un Dockerfile
12
Pour aller plus loin
Un petit atelier + technique WordPress Rennes ?
Rennes DevOps : http://rennesdevops.fr (+ meetup)
Un dossier de présentation complet :
https://www.guillaume-leduc.fr/docker-comme-
solution-de-virtualisation-theorie.html
Google / Qwant / DuckDuckGo ;)
13
Merci de votre attention
Des questions ?

Introduction à docker - Meetup WP Rennes

  • 1.
    1 INTRODUCTION À DOCKER &sont dans un bateau... MEETUP WORDPRESS RENNES 29 SEPT. 2016 Yann Nave
  • 2.
    2 Qui suis-je Lead devweb / depuis 11ans chez Dis-Group, Lille Technos principales : GNU Linux, Apache, MySQL, PHP, ZendFramework, WordPress, Javascript, jQuery Depuis 6ans : sites d'actualités basé sur WordPress-Mu, 10 millions visites/mois Depuis 1an : utilisation de Docker en environnement de développement Nouveau projet : mise en place d'un stack de dev basé sur Docker, WordPress (Bedrock), Git twitter.com/@yannux | yannux@onbebop.net
  • 3.
    3 Au programme Une introductionaccessible, concrète, sans trop rentrer dans la technique. 1. Docker pour qui et pour quoi 2. Côté technique 3. Exemples concrets 4. Ce qu'on n'a pas vue 5. Aller plus loin Pas de chat, mais un chien !
  • 4.
    4 . 1 Dockerpour qui ? Toute personne ayant un impact sur la réalisation d'un projet de la conception à la phase de test. Développeur / Intégrateur / Chef de projet / Admin Système & Réseau Pour ceux qui veullent bidouiller, tester Pour apprendre, tout simplement
  • 5.
    4 . 2 Dockerpour quoi ? Un environnement de développement adapté à chaque projet et identique à la production Peut importe son système d'exploitation de base Effectuer facilement des tests lors de la mise à jours des composants logiciels d'un serveur ( version de Apache / PHP /MySQL / librairie diverse etc..) Partager facilement un envrionnement de développement. Découvrir un langage ou applicatif sans avoir à tout installer directement sur son système.
  • 6.
    5 . 1 Côtétechnique À l'usage : similaire à VirtualBox/VMware Dans les 2 cas on isole des programmes de son système principale VMware/VirtualBox permettent de créer des machines virtuelles Docker permet de gérer des containers Cependant... Une machine virtuel = OS + environnement applicatif : c'est lourd Un container = juste environnement applicatif : c'est plus léger ! À usage égale, un container Docker est plus rapide qu'une machine virtuelle
  • 7.
    5 . 2 Côtétechnique - Vocabulaire Docker utilise essentiellement : Dockerfile Fichier texte qui décrit comment créer une image Image C'est le modèle qui permettra de créer un/des container(s) Container C'est la "boite" qui sera exéctué par Docker pour faire fonctionner votre applicatif Volume Il permet de mettre les fichiers de l'application dans une autre "boite", lié au(x) container(s)
  • 8.
  • 9.
    7 . 1 Exemplesconcrets Level 1 : Un pour tous, tous pour un ! Level 2 : Diviser pour mieux régner ! Level 3 : Crash test ! Pour ces exemples nous utiliserons docker-compose qui permet de créer encore + facilement nos containers !
  • 10.
    7 . 2 docker-compose? Outil en ligne de commande qui permet de créer automatiquement des containers et de les lier entre eux Utilise un fichier texte qui décrit les containers et leurs liaisons : docker-compose.yml
  • 11.
    8 . 1 Level1 : Un pour tous, tous pour un ! Les ingrédients : 1 container WordPress en version 4.4 1 container MySQL Temps de préparation : 5minutes
  • 12.
    8 . 2 Level1 : Un pour tous, tous pour un ! La recette : wordpress_v44: image: wordpress:4.4-apache links: - mysql_v44 environment: - WORDPRESS_DB_PASSWORD=password - WORDPRESS_DB_HOST=mysql_v44:3306 ports: - "8081:80" mysql_v44: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=wordpress
  • 13.
    9 . 1 Level2 : Diviser pour mieux régner ! Les ingrédients : 1 container WordPress en version 4.4 1 container MySQL 1 volume qui va contenir le dossier /wp-content de WordPress Temps de préparation : 5minutes
  • 14.
    9 . 2 Level2 : Diviser pour mieux régner ! La recette : wordpress_v44volume: image: wordpress:4.4-apache links: - mysql_v44volume environment: - WORDPRESS_DB_PASSWORD=password - WORDPRESS_DB_HOST=mysql_v44volume:3306 ports: - "8082:80" working_dir: /var/www/html volumes: - ./data/wordpress/wp-content/:/var/www/html/wp-content mysql_v44volume: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=wordpress
  • 15.
    10 . 1 Level3 : Crash test ! Les ingrédients : 1 container WordPress en version 4.6 1 container MySQL Notre précédent volume qui contient déjà le dossier /wp-content de WordPress Temps de préparation : 5minutes
  • 16.
    10 . 2 Level3 : Crash test ! La recette : wordpress_v46volume: image: wordpress:4.6-apache links: - mysql_v46volume environment: - WORDPRESS_DB_PASSWORD=password - WORDPRESS_DB_HOST=mysql_v46volume:3306 ports: - "8083:80" working_dir: /var/www/html volumes: - ../LEVEL2/data/wordpress/wp-content/:/var/www/html/wp-content mysql_v46volume: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=wordpress
  • 17.
    11 Ce qu'on apas vue Installer Docker sur Windows, Mac OS, GNU Linux / Docker Hub : pour trouver des images existantes Tous les outils trop bien (Kitematic, docker-ui, etc...) Sauvegarder, partager, restaurer facilement un container ou une image Créer ses images avec un Dockerfile
  • 18.
    12 Pour aller plusloin Un petit atelier + technique WordPress Rennes ? Rennes DevOps : http://rennesdevops.fr (+ meetup) Un dossier de présentation complet : https://www.guillaume-leduc.fr/docker-comme- solution-de-virtualisation-theorie.html Google / Qwant / DuckDuckGo ;)
  • 19.
    13 Merci de votreattention Des questions ?