_index.md 2.59 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
---
title: Docker
---

# Gestion des conteneurs

L'ensemble des données spécifiques aux applications, donc l'ensemble des données des conteneurs est stocké dans `/srv` sur une partition chiffrée.

## Orchestration

L'organisation des conteneurs repose sur les concepts de Compose. Les conteneurs sont organisés par application, le moins de mutualisation possible es# Gestion des conteneurs

L'ensemble des données spécifiques aux applications, donc l'ensemble des données des conteneurs est stocké dans `/srv` sur une partition chiffrée.

Le `/srv` lui-même est découpé en fonction des usages :

- `/srv/conf` : configurations générales
- `/srv/docker` : données internes de Docker
- `/srv/templates` : modèles de configuration de services
- `/srv/core` : projets compose d'infrastructure
- `/srv/apps` : projets compose des applications
- `/srv/users` : projets compose des services hébergés pour les utilisateurs

## Orchestration

L'organisation des conteneurs repose sur les concepts de Compose. Les conteneurs sont organisés par application, le moins de mutualisation possible est effectuée. Par exemple, chaque application dispose de son serveur de bases de données, de son serveur Redis si besoin, etc.

La configuration et les données de chaque application est stockée dans un dossier dédié dans `/srv/apps` ou `/srv/users`. Par exemple, `/srv/apps/mastodon`, `/srv/apps/mumble`. Ce dossier abrite ensuite idéalement un fichier compose `docker-compose.yml`, un dossier pour les éventuels fichiers de configuration `./conf` et un dossier de données, `./data`. Les applications plus complexes disposent d'une arborescence adaptée.

Le fichier `docker-compose.yml` ne doit pas contenir de données spécifiques à TeDomum et doit être publiable. Les données spécifiques sont importées par variables depuis un fichier `.env` situé dans le dossier de l'application.

# Documentation

La documentation est effectuée *in situ*, ou bien dans les fichiers `.yml`, de configuration, etc. ou bien dans des fichiers README.md, pour l'arborescence et les choix locaux de conception par exemple.

L'ensemble des fichiers `docker-compose.yml`, des fichiers de documentation, et des fichiers de configuration ne contenant pas de données sensibles, sont versionnés sur un dépôt Git public et commun à l'ensemble des hôtes.

# Services centraux

Les services mutualisés sont regroupés dans des projets compose dans `/srv/core`. A titre d'exemple, les services `traefik` (reverse proxy Web) et `fw` (gestion du firewall) sont dans `/srv/core/front`. Ils doivent être démarrés avant le reste de l'infrastructure.