Docker

L'art d'orchestrer ses baleines

Créé par Baptiste Donaux

Baptiste Donaux

Sommaire

  • Docker, qu'est-ce c'est ?
  • Terminologies
  • Fonctionnement des layers
  • Quelques commandes
  • Orchestrer vos applications

Docker, qu'est-ce que c'est ?

  • Un système de containers
  • Initialement basé sur LXC
  • Première version stable sortie en mars 2013
  • Disponible sur Linux et sur Windows (via Microsoft Azure)

Terminologies

Layer

Couche contenant le diff entre deux états (entre un layer et un ensemble de layers - agglomération) Donnée interne à Docker

Image

Ensemble de layers en lectures seuls.
Une image est toujours construite à partir d'une autre image. Donnée statique

Container

Unique layer en lecture/écriture basé sur une image.
Un container part toujours d'une image. Donnée jetable

Volume

Un volume est d'une manière où d'une autre, des données sorties d'un container pour être conservé, réutilisé dans/par d'autres containers.

Network

Un network rattache des containers, et isole des containers entre eux.

Fonctionnement des layers

Un layer est un dossier contenant des fichiers.

Plusieurs drivers

  • AUFS
  • DeviceMapper
  • Overlay(FS)
  • BtrFS
  • ZFS
  • et d'autres...

Quelques commandes

Image

  • images
  • build
  • rmi

Image

Création depuis un Dockerfile.

FROM debian:8
MAINTAINER Baptiste Donaux - baptiste.donaux@gmail.com
CMD echo "My God !"
                        
$ docker build .
                        

Container

  • create/run
  • start/stop/kill/pause/unpause
  • ps/top/stats
  • logs
  • rename/rm

Docker Hub

  • search
  • pull/push
  • login/logout

Orchestrer vos applications

Présentation

Mettre en relation des containers et aider à les déployer.

Présentation

  • Initialement Fig (développé lors du hackthlon de novembre 2014)
  • Intégrer dans la stack Docker comme docker-compose

Terminologies

service
Schéma d'exécution virtuelle. Un service déclaré physiquement en containers. Un service peut être scalé en X containers.

Kozikaza

Part 1. - Schéma de l'infrastructure actuelle

Kozikaza

Part 2. - Découpage des services pour chacune des applications

Kozikaza

// Free style code (docker-compose v1)
// So easy with Docker <3
                        

Kozikaza

// Free style code (docker-compose v2)
// wanapower = On
                        

Maintenant, vous n'avez plus d'excuse !