Logiciels de l’écosystème Docker

Porte_conteneur

 

Présentation d’un certain nombre de logiciels utiles pour travailler dans un environnement dockerisé.

 

I- Réseau

 

1- Pipework

 

Script de configuration réseau pour Docker/LXC.
Complément à Docker car Docker n’est pas chargé de configurer le réseau.

Site officiel et doc

 

Installation

 

apt-get install arping bridge-utils  
git clone https://github.com/jpetazzo/pipework.git
mv pipework/pipework /usr/local/bin/pipework

 

Utilisation

 

Créer un réseau privé entre deux conteneurs et l’hôte :

pipework br1 conteneur1 192.168.1.1/24@192.168.1.254  
pipework br1 conteneur2 192.168.1.2/24@192.168.1.254  
ip addr add 192.168.1.254/24 dev br1

 

2- dnsmasq

 

DNSMasq c’est un mini serveur qui vous évite d’installer des services plus lourds (comme Bind, ISC Dhcpd, …). Il n’est pas spécifiquement lié à l’environnement Docker mais il peut être très utile pour se monter très simplement un service de noms et une distribution d’adresses.

Configuration en deux minutes

 

3- Serveur PXE dans un container

 

Un container pour booter en PXE des machines sous Debian.

Les explications et le dockerfile.

 

II- Gestion des containers

 

1- Interface Web (DockerUI ou Shipyard)

 

Docker peut aussi s’administrer avec une interface Web. C’est peut-être un gadget mais ça permet à ceux qui ne connaissent pas Docker de faire de l’administration basique (redémarrer un container, …).

J’aime bien DockerUI qui a le mérite d’être simple.

Ca s’installe directement dans un container :

 

docker build -t crosbymichael/dockerui github.com/crosbymichael/dockerui
docker run -d -p 9000:9000 -v /var/run/docker.sock:/docker.sock crosbymichael/dockerui -e /docker.sock

 

Dans ce domaine, il y a aussi Shipyard qui semble plus complet, qui propose une API et qui fonctionne en client serveur (avec le shipyard-agent sur les containers).

 

2- nsenter

 

Problème habituel dans Docker : une fois qu’on lance un container en mode démon, on ne peut plus rentrer dedans.

Pour résoudre ça, on va avoir besoin de nsenter fourni par le paquet util-linux > 2.23. Sous debian/ubuntu, c’est la version 2.20 donc il faut télécharger et compiler les sources :

 

cd /tmp
curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-
cd util-linux-2.24
./configure --without-ncurses
make nsenter
cp nsenter /usr/local/bin

 

Et maintenant on se crée un script pour Docker (/usr/local/sbin/dkenter) :

 

#!/bin/bash

CNAME=$1
CPID=$(docker inspect --format '{{ .State.Pid }}' $CNAME)
nsenter --target $CPID --mount --uts --ipc --net --pid

 

Je lance un container en démon :

 

docker run --name lamp1 -d lamp-maria supervisord -n

 

Je ne peux plus m’attacher dessus alors j’utilise dkenter pour obtenir un shell. Quand j’en ressort, le container continue de tourner.

 

dkenter lamp1
root@ff94c159642f# ...
root@ff94c159642f# exit

 

3- Boot2Docker

 

Boot2Docker est une distribution Linux ultra-légère pour servir d’hôte Docker. On peut télécharger les images ISO ou suivre le manuel.

 

4- Busybox

 

Busybox est un système Linux ultra léger (2,5 Mo, qui dit mieux ?). Il existe en image Docker sur le dépôt officiel Docker

 

5- Baseimage

 

Baseimage c’est le contraire de busybox ! Il part du principe que l’image Ubuntu ou Debian fournie de base par Docker doit être complétée pour fournir d’autres services tels qu’un process init correct, un syslog, un cron, et un serveur SSH.

Les explications

Le dépôt git

 

 

III- Créer son propre dépôt Docker

 

Docker registry : Un logiciel pour créer son propre dépôt Docker.

Sur Github

J’ai pas fouillé beaucoup là-dessus.

Y en a qui l’ont fait …

 

 

 

Sur le même sujet :