2014-04-27 02:12:35 +02:00
# Docker et YunoHost
2014-06-05 13:34:59 +02:00
*Voici une petite page de documentation en guise de mémo sur la manière de tester/développer YunoHost avec Docker.*
2014-04-27 02:12:35 +02:00
2014-06-05 13:36:10 +02:00
*Toutes les autres façons d'installer YunoHost sont listées ** [ici ](/install_fr )**.*
2014-06-04 14:31:39 +02:00
< img src = "https://yunohost.org/images/docker.png" width = 250 >
2014-04-27 02:12:35 +02:00
---
## Installer Docker
2015-04-12 22:56:58 +02:00
**Prérequis** : une machine x86 qui tourne sous Ubuntu 14.04 ou supérieur, ou alors ArchLinux (sur Debian c'est plus chiant)
2014-04-27 02:12:35 +02:00
2015-04-12 22:56:58 +02:00
Sous Ubuntu :
2014-04-27 02:12:35 +02:00
```bash
curl -s https://get.docker.io/ubuntu/ | sudo sh
```
Sous ArchLinux :
```bash
sudo pacman -Sy docker
```
2014-07-23 15:57:07 +02:00
**Remarque :** vous pourrez avoir besoin de lancer le démon docker (en root : `service docker start` , `systemctl start docker` ou simplement `docker -d` )
2014-04-27 02:12:35 +02:00
---
## Installer le conteneur YunoHost
2015-04-12 22:56:58 +02:00
La commande suivante va télécharger l’ image YunoHost pré-construite :
```bash
docker pull yunohost/full
```
Vous pouvez également construire le conteneur manuellement :
2014-04-27 02:12:35 +02:00
```bash
2015-04-12 22:56:58 +02:00
docker build -t yunohost/full github.com/YunoHost/Dockerfile
2014-04-27 02:12:35 +02:00
```
2015-04-12 22:56:58 +02:00
Vous pouvez vérifier que le conteneur est bien téléchargé avec la commande `docker images`
2014-04-27 02:12:35 +02:00
---
## Démarrer le conteneur
```bash
2015-04-12 22:56:58 +02:00
docker run -d yunohost/full /sbin/init
2014-04-27 02:12:35 +02:00
```
2015-04-12 22:56:58 +02:00
Si vous souhaitez démarrer le conteneur avec tous les ports forwardé sur l’ hôte :
2014-04-27 02:12:35 +02:00
2015-04-12 22:56:58 +02:00
```bash
docker run -d \
-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 \
yunohost/full \
/sbin/init
```
2014-04-27 02:12:35 +02:00
2015-04-12 22:56:58 +02:00
Plus d'information sur la documentation de Docker :
2015-02-04 11:32:19 +01:00
* http://docs.docker.com/reference/commandline/cli/#run
* http://docs.docker.com/userguide/dockerlinks/
2014-04-27 02:12:35 +02:00
---
2015-04-12 22:56:58 +02:00
## Post-installation
Récupérez l'adresse IP du conteneur (normalement quelque chose comme 172.17.0.x)
```bash
docker inspect --format '{{ .NetworkSettings.IPAddress }}' < CONTAINER_ID >
```
Rendez-vous ensuite sur https://ip.du.conteneur et procédez à la [post-installation ](/postinstall_fr )
---
2014-04-27 02:12:35 +02:00
2015-04-12 22:56:58 +02:00
## Commandes utiles
2014-04-27 02:12:35 +02:00
2015-04-12 22:56:58 +02:00
Snapshoter l'état d'un container
2014-04-27 02:12:35 +02:00
```bash
docker commit < ID_de_mon_conteneur > LeNomQueJeVeux
2015-04-12 22:56:58 +02:00
# Exemple : docker commit 3e85317430db yunohost/full:27042015
2014-04-27 02:12:35 +02:00
```
2015-04-12 22:56:58 +02:00
Assigner une IP à un container
2014-04-27 02:12:35 +02:00
```bash
# Vous avez besoin d'iptables, et avoir activé l'IP 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 à l'interface (ici eth0)
```
2015-04-12 22:56:58 +02:00
Se connecter à un conteneur démarré
2014-04-27 02:12:35 +02:00
```bash
2015-04-12 22:56:58 +02:00
docker exec -t -i < ID_de_mon_conteneur > /bin/bash
2014-04-27 02:12:35 +02:00
```