doc/docker_fr.md

3 KiB
Raw Blame History

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 dinstaller YunoHost sont listées ici.


Installer Docker

Prérequis : une machine x86 qui tourne sous Ubuntu 14.04 ou supérieur, ArchLinux ou Fedora (sur Debian cest plus chiant).

Sous Ubuntu :

$ curl -s https://get.docker.io/ubuntu/ | sudo sh

Sous ArchLinux :

$ sudo pacman -Sy docker

Sous Fedora :

$ sudo dnf install docker

Passez root :

$ sudo -i

Lancer le démon docker avec une des commande ci-dessous :

service docker start
systemctl start docker
docker -d

Installer le conteneur YunoHost

La commande suivante va télécharger limage YunoHost pré-construite :

docker pull zamentur/yunohost-stable8

Vous pouvez également construire le conteneur manuellement :

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

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 lhôte :

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 dinformation sur la documentation de Docker :


Post-installation

Entrer dans le container en remplaçant XXXX par lid obtenu lors du docker run

docker exec -t -i XXXX /bin/bash

Puis lancez la postinstall avec le script dédié à docker

postinstall

Commandes utiles

Récupérez ladresse IP du conteneur (normalement quelque chose comme 172.17.0.x)

docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER_ID>

Snapshoter létat dun container

docker commit <ID_de_mon_conteneur> LeNomQueJeVeux
# Exemple : docker commit 3e85317430db zamentur/yunohost-stable8:27042015

Assigner une IP à un container

# Vous avez besoin diptables, et avoir activé lIP forwarding sur votre système
iptables -t nat -A PREROUTING -d <IP à allouer> -j DNAT --to-destination <IP conteneur docker>
iptables -t nat -A POSTROUTING -s '<IP conteneur docker>/32' -o eth0 -j SNAT --to-source <IP à allouer>
# Attention à linterface (ici eth0)

Se connecter à un conteneur démarré

docker exec -t -i <ID_de_mon_conteneur> /bin/bash