doc/docker_fr.md
2016-03-30 14:32:52 +02:00

133 lines
3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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](/install_fr)**.*
<img src="/images/docker.png" width=250>
---
## 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 :
```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 commandes ci-dessous :
```bash
service docker start
systemctl start docker
docker -d
```
---
## Installer le conteneur YunoHost
La commande suivante va télécharger limage 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 lhô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 dinformation 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 lid 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 ladresse IP du conteneur (normalement quelque chose comme 172.17.0.x)
```bash
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER_ID>
```
Snapshoter létat dun container
```bash
docker commit <ID_de_mon_conteneur> LeNomQueJeVeux
# Exemple : docker commit 3e85317430db zamentur/yunohost-stable8:27042015
```
Assigner une IP à un container
```bash
# 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é
```bash
docker exec -t -i <ID_de_mon_conteneur> /bin/bash
```