Jouer avec les processus grâce à Docker


Contrairement à la virtualisation, il permet de mettre rapidement en place des services en les isolants dans des “conteneurs”. Cette méthode à l'avantage de consommer peu de ressources vu qu'il utilise directement les ressources de la machine physique.

Pour une présentation plus approfondis, je vous conseil vivement de suivre la vidéo de Grafikart.

Forces Faiblesse
Multiplate-forme (windows, linux, bsd, arm) Ne fonctionne pas sur les systèmes 32 bits
Permet de contrôler les ressources d'un processus efficacement N'est pas aussi bien sécurisé qu'une VM
Permet de déployer une application très rapidement Requière de l'espace de stockage
Interconnexion aux conteneurs chiffré nativement Trop de méthodes disponible pour administrer des conteneurs
Valorise l'automatisation de services Solution jeune et évolue très vite

Tutoriels

Conseils

Docker est encore très jeune. J'insiste sur ce point car il y a des commandes qui changent de comportement voir même qui disparaisse en fonction des versions. (par exemple, les commandes “docker container ps” et “docker container ls” sont identique à la version 17.03.1-ce…“)

Le problème majeure quand on débute avec Docker est l'usage de l'espace disque. Par défaut, les images et conteneurs sont placé dans /var/lib/docker. On peut changer cette enplacement par /home/mon-user/docker en modifiant le /etc/init.d/docker et en ajoutant l'option suivante :

case "$1" in
        start)
        [...]        
                        start-stop-daemon --start --background \
                        --no-close \
                        --exec "$DOCKERD" \
                        --pidfile "$DOCKER_SSD_PIDFILE" \
                        --make-pidfile \
                        --data-root="/home/mon-user/docker" \
                        -- \
                                -p "$DOCKER_PIDFILE" \
                                $DOCKER_OPTS \
                                        >> "$DOCKER_LOGFILE" 2>&1
[...]

Par ailleurs, ces paquets peuvent être utile si l'on choisit une image minimale :

  • netstat = net-tools
  • ping = inetutils-ping