2014-04-27 02:12:35 +02:00
|
|
|
|
# Docker et YunoHost
|
|
|
|
|
|
2015-10-08 17:07:36 +02:00
|
|
|
|
*Voici une 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
|
|
|
|
|
2015-05-20 12:26:56 +02:00
|
|
|
|
*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install_fr)**.*
|
2014-06-05 13:36:10 +02:00
|
|
|
|
|
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-10-08 17:07:36 +02:00
|
|
|
|
**Prérequis** : une machine x86 qui tourne sous Ubuntu 14.04 ou supérieur, ArchLinux ou Fedora (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
|
2015-04-24 19:41:23 +02:00
|
|
|
|
$ curl -s https://get.docker.io/ubuntu/ | sudo sh
|
2014-04-27 02:12:35 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Sous ArchLinux :
|
|
|
|
|
```bash
|
2015-04-24 19:41:23 +02:00
|
|
|
|
$ sudo pacman -Sy docker
|
2014-04-27 02:12:35 +02:00
|
|
|
|
```
|
|
|
|
|
|
2015-04-24 19:41:23 +02:00
|
|
|
|
Sous Fedora :
|
|
|
|
|
```bash
|
2015-10-08 17:07:36 +02:00
|
|
|
|
$ sudo dnf install docker
|
2015-04-24 19:41:23 +02:00
|
|
|
|
```
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Passez **root** :
|
|
|
|
|
```bash
|
|
|
|
|
$ sudo -i
|
|
|
|
|
```
|
2014-04-27 02:12:35 +02:00
|
|
|
|
|
2015-04-24 19:41:23 +02:00
|
|
|
|
Lancer le démon docker avec une des commande ci-dessous :
|
|
|
|
|
```bash
|
|
|
|
|
service docker start
|
|
|
|
|
systemctl start docker
|
|
|
|
|
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
|
2015-10-08 02:03:12 +02:00
|
|
|
|
docker pull zamentur/yunohost-stable8
|
2015-04-12 22:56:58 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
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-10-08 02:03:12 +02:00
|
|
|
|
docker run -h yunohost.DOMAIN -v $(pwd):/yunohost -d zamentur/yunohost-stable8 /sbin/init
|
2014-04-27 02:12:35 +02:00
|
|
|
|
```
|
|
|
|
|
|
2015-05-20 12:26:56 +02:00
|
|
|
|
Si vous souhaitez démarrer le conteneur avec tous les ports forwardés sur l’hôte :
|
2014-04-27 02:12:35 +02:00
|
|
|
|
|
2015-04-12 22:56:58 +02:00
|
|
|
|
```bash
|
2015-10-08 02:03:12 +02:00
|
|
|
|
docker run -d -h yunohost.DOMAIN -v $(pwd):/yunohost \
|
2015-04-12 22:56:58 +02:00
|
|
|
|
-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 \
|
2015-10-08 02:03:12 +02:00
|
|
|
|
zamentur/yunohost-stable8 \
|
2015-04-12 22:56:58 +02:00
|
|
|
|
/sbin/init
|
|
|
|
|
```
|
2014-04-27 02:12:35 +02:00
|
|
|
|
|
2015-05-20 12:26:56 +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
|
2015-10-08 02:03:12 +02:00
|
|
|
|
Entrer dans le container en remplaçant XXXX par l'id obtenu lors du docker run
|
2015-04-12 22:56:58 +02:00
|
|
|
|
```bash
|
2015-10-08 02:03:12 +02:00
|
|
|
|
docker exec -t -i XXXX /bin/bash
|
|
|
|
|
```
|
|
|
|
|
Puis lancez la postinstall avec le script dédié à docker
|
|
|
|
|
```bash
|
|
|
|
|
postinstall
|
2015-04-12 22:56:58 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---
|
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-10-08 02:03:12 +02:00
|
|
|
|
|
|
|
|
|
Récupérez l’adresse IP du conteneur (normalement quelque chose comme 172.17.0.x)
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER_ID>
|
|
|
|
|
```
|
|
|
|
|
|
2015-05-20 12:26:56 +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
|
2015-05-20 12:26:56 +02:00
|
|
|
|
# Vous avez besoin d’iptables, et avoir activé l’IP forwarding sur votre système
|
2014-04-27 02:12:35 +02:00
|
|
|
|
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>
|
2015-05-20 12:26:56 +02:00
|
|
|
|
# Attention à l’interface (ici eth0)
|
2014-04-27 02:12:35 +02:00
|
|
|
|
```
|
|
|
|
|
|
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
|
|
|
|
```
|