# Docker et YunoHost *Voici une page de documentation en guise de mémo sur la manière de tester/développer YunoHost avec Docker.* *Toutes les autres façons d’installer YunoHost sont listées **[ici](/install_fr)**.* --- ## Installer Docker **Prérequis** : une machine x86 qui tourne sous Ubuntu 14.04 ou supérieur, ArchLinux ou Fedora (sur Debian c’est plus chiant). Sous Ubuntu : ```bash $ curl -s https://get.docker.io/ubuntu/ | sudo sh ``` Sous ArchLinux : ```bash $ sudo pacman -Sy docker ``` Sous Fedora : ```bash $ sudo dnf install docker ``` --- Passez **root** : ```bash $ sudo -i ``` Lancer le démon docker avec une des commande ci-dessous : ```bash service docker start systemctl start docker docker -d ``` --- ## Installer le conteneur YunoHost La commande suivante va télécharger l’image YunoHost pré-construite : ```bash docker pull zamentur/yunohost-stable8 ``` Vous pouvez également construire le conteneur manuellement : ```bash docker build -t zamentur/yunohost-stable8 github.com/YunoHost/Dockerfile ``` Vous pouvez vérifier que le conteneur est bien téléchargé avec la commande `docker images` --- ## Démarrer le conteneur Pour démarrer le conteneur, lancez la commande suivante en remplaçant DOMAIN par un domaine valide ex: mondomaine.org => yunohost.mondomaine.org ```bash docker run -h yunohost.DOMAIN -v $(pwd):/yunohost -d zamentur/yunohost-stable8 /sbin/init ``` Si vous souhaitez démarrer le conteneur avec tous les ports forwardés sur l’hôte : ```bash docker run -d -h yunohost.DOMAIN -v $(pwd):/yunohost \ -p 25:25 \ -p 53:53/udp \ -p 80:80 \ -p 443:443 \ -p 465:465 \ -p 993:993 \ -p 5222:5222 \ -p 5269:5269 \ -p 5290:5290 \ zamentur/yunohost-stable8 \ /sbin/init ``` Plus d’information sur la documentation de Docker : * http://docs.docker.com/reference/commandline/cli/#run * http://docs.docker.com/userguide/dockerlinks/ --- ## Post-installation Entrer dans le container en remplaçant XXXX par l'id obtenu lors du docker run ```bash docker exec -t -i XXXX /bin/bash ``` Puis lancez la postinstall avec le script dédié à docker ```bash postinstall ``` --- ## Commandes utiles Récupérez l’adresse IP du conteneur (normalement quelque chose comme 172.17.0.x) ```bash docker inspect --format '{{ .NetworkSettings.IPAddress }}' ``` Snapshoter l’état d’un container ```bash docker commit LeNomQueJeVeux # Exemple : docker commit 3e85317430db zamentur/yunohost-stable8:27042015 ``` Assigner une IP à un container ```bash # Vous avez besoin d’iptables, et avoir activé l’IP forwarding sur votre système iptables -t nat -A PREROUTING -d -j DNAT --to-destination iptables -t nat -A POSTROUTING -s '/32' -o eth0 -j SNAT --to-source # Attention à l’interface (ici eth0) ``` Se connecter à un conteneur démarré ```bash docker exec -t -i /bin/bash ```