Docker a déjà été présenté via un tutoriel pour manipuler les conteneurs et une présentation de la gestion des containers sur LinuxFR. Il s'agit d'un système de conteneurs qui étend ce que fait le système de cloisonnement Linux Containers LXC sous Linux. Cette dépêche présente un certain nombre de logiciels utiles pour compléter Docker.
Gestion du réseau
Pipework
Pipework est un script de configuration réseau pour Docker/LXC. C'est un complément à Docker, lequel ne se charge pas directement de configurer le réseau (en tous cas pas suffisamment).
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
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
Documentation officielle
Serveur PXE dans un container
Un container pour booter en PXE des machines sous Debian.
Les explications et le dockerfile.
Gestion des containers
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.
Ça 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).
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
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.
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
Baseimage
Baseimage c'est le contraire de busybox. Ça 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.
Créer son propre dépôt Docker
Docker registry : un logiciel pour créer son propre dépôt Docker.
Sur Github
Aller plus loin
- Article à l'origine de la dépêche (266 clics)
- Site officiel de Docker (141 clics)
# CoreOs VS Boot2Docker
Posté par Julien CARTIGNY (site web personnel) . Évalué à 4.
Quel est l'avantage de Boot2Docker vis-à-vis de CoreOS. Ce dernier est super pour faire du déploiement massive épaulé par une configuration délivrée par etcd. J'ai l'impression que Boot2Docker est surtout pratique pour une petite installation sur une seule machine, correct ?
[^] # Re: CoreOs VS Boot2Docker
Posté par Adminrezo (site web personnel) . Évalué à 2.
Oui, d'après ce que j'ai pu en comprendre, boot2docker est plutôtant fait pour une utilisation à petite échelle contrairement à CoreOS.
Après, Docker étant jeune, il y a sûrement des projets dans l'écosystème qui se marchent sur les pieds…
# Supervisor
Posté par barmic . Évalué à 6.
Il manque supervisor à la liste qui permet d'avoir des une sorte d'init simple dans les conteneurs.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Supervisor
Posté par Adminrezo (site web personnel) . Évalué à 2.
Oui tout à fait, supervisor est essentiel pour lancer les process dans les containers.
[^] # Re: Supervisor
Posté par Julien CARTIGNY (site web personnel) . Évalué à 3.
Avec l'URL qui va bien pour savoir ce que fait supervisor:
http://docs.docker.io/examples/using_supervisord/
# Et project atomic ?
Posté par Misc (site web personnel) . Évalué à 8.
Sinon, y a ça qui a été annoncé la semaine dernière :
http://www.projectatomic.io/
docker + selinux pour la sécurité + ostree pour les updates atomics + cockpit pour l'interface web et systemd pour la gestion des limites et la centralisation des logs. Le tout sur une base de distro qu'on connait ( fedora/centos pour le moment, mais rien n'empeche de prendre de la debian si quelqu'un code la partie qui fait un arbre ostree à partir d'un .deb, l'auteur serait très heureux d'ajouter ça )
Rajoute aussi geard, pour orchestrer les containers et les déployer, et source-to-image, qui va prendre un depot git et le combiner avec une image docker pour le deployer directement dans atomic ( https://github.com/openshift/docker-source-to-images ).
[^] # Re: Et project atomic ?
Posté par Julien CARTIGNY (site web personnel) . Évalué à 3.
Ouah, les reproches que je faisais sur Docker sont tous bien pris en compte dans ce project atomic. J'attends de voir mais ça me donne envie.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.