URL: https://linuxfr.org/news/logiciels-pour-survivre-avec-docker Title: Logiciels pour survivre avec Docker Authors: Adminrezo NeoX, Nÿco, Benoît Sibaud et Ontologia Date: 2014年04月18日T00:52:59+02:00 License: CC By-SA Tags: docker, lxc, virtualisation, debian, ubuntu et conteneur Score: 25 Docker a déjà été présenté via un [tutoriel pour manipuler les conteneurs](//linuxfr.org/news/docker-tutoriel-pour-manipuler-les-conteneurs) et une présentation de la [gestion des containers](//linuxfr.org/news/gerer-les-containers-avec-docker) 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. ---- [Article à l'origine de la dépêche](http://blog.adminrezo.fr/2014/04/logiciels-environnement-docker-lxc-linux-containers/) [Site officiel de Docker](https://www.docker.io/) ---- # 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). [Site officiel et doc](https://github.com/jpetazzo/pipework) ### Installation ```sh 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 : ```sh 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](http://blog.adminrezo.fr/2014/04/dnsmasq-serveur-dns-dhcp-tftp-pxe-simple-et-leger/) [Documentation officielle](http://www.thekelleys.org.uk/dnsmasq/doc.html) ## Serveur PXE dans un container Un container pour booter en PXE des machines sous Debian. [Les explications et le dockerfile](https://github.com/jpetazzo/pxe). # 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](https://github.com/crosbymichael/dockerui) qui a le mérite d'être simple. Ça s'installe directement dans un container : ```sh 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 : ```sh 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) : ```sh #!/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. ```sh 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](https://github.com/boot2docker/boot2docker/releases) ou [suivre le manuel](https://github.com/boot2docker/boot2docker). ## 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](https://index.docker.io/_/busybox/) ## 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. [Les explications](https://phusion.github.io/baseimage-docker/) [Le dépôt git](https://github.com/phusion/baseimage-docker) ## Créer son propre dépôt Docker Docker registry : un logiciel pour créer son propre dépôt Docker. [Sur Github](https://github.com/dotcloud/docker-registry)