Mirror the French docs onto the English structure

This commit is contained in:
Djeex
2026-09-05 16:55:39 +02:00
parent 86f04ed794
commit 1894ac7ead
74 changed files with 6322 additions and 1588 deletions
+78 -61
View File
@@ -3,86 +3,87 @@ title: Docker
description: Installer Docker et Dockge sur Debian pour déployer et gérer des services auto-hébergés avec de simples stacks de conteneurs.
---
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
# Docker
Docker, pour installer des services déployables en quelques secondes, et les manager en quelques commandes/clics.
Chaque application de ce guide, [Jellyfin](/serveex/media/jellyfin), [Vaultwarden](/serveex/apps/vaultwarden), [Immich](/serveex/cloud/immich), pour n'en citer que quelques-unes, arrive avec sa propre liste de dépendances, sa propre version de Python ou de Node, ses propres bizarreries. Installer tout ça directement sur Debian fonctionne un moment, jusqu'à ce que deux applications réclament une version différente de la même bibliothèque, ou qu'en désinstaller une laisse des fichiers éparpillés dans le système sans moyen propre de revenir en arrière.
::note
🎯 __Objectifs :__
Un **conteneur** contourne le problème : il empaquette une application avec tout ce dont elle a besoin pour tourner, isolée du reste du système et de tous les autres conteneurs. En démarrer un ne touche pas aux paquets de Debian, et le supprimer tient en une commande qui ne laisse rien derrière. Ce n'est pas non plus une machine virtuelle, il n'y a pas de second système d'exploitation à démarrer ni de ressources à réserver à l'avance : un conteneur partage le noyau de l'hôte et démarre en une seconde environ, en n'utilisant que la RAM et le CPU dont l'application à l'intérieur a réellement besoin.
- Installer [Docker](https://www.docker.com/)
- Installer [Dockge](https://github.com/louislam/dockge) pour manager les stacks
- Installer [Watchtower](https://github.com/containrrr/watchtower) pour mettre à jour les conteneurs
::
**Docker** est l'outil qui construit, démarre et gère ces conteneurs. Pointez-le sur une *image*, un instantané prêt à l'emploi d'une application maintenu par ses développeurs, et il la télécharge et la lance en une commande. Tout le reste de Serveex est bâti dessus : chaque application à partir d'ici est un conteneur Docker, ou une poignée de conteneurs qui travaillent ensemble.
![picture](/img/serveex/docker.svg)
## Installer docker
Installez les repo Docker et la clé GPG
## Installer Docker
::steps{level="3"}
### Ajouter le dépôt Docker et la clé GPG
```bash [Terminal]
# Add Docker's official GPG key:
# Ajoute la clé GPG officielle de Docker :
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Ajoute le dépôt aux sources Apt :
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```
Installez les package
### Installer les paquets
```bash [Terminal]
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
Et voilà !
**Plus d'options** [Installer docker pour Debian 12](https://docs.docker.com/engine/install/debian/)
### Terminé !
::
**Plus d'options :** [Installer Docker pour Debian 13](https://docs.docker.com/engine/install/debian/)
::note
Dans toute la suite, on part du principe que les stacks sont installées dans le dossier `/docker`, créé grace à la commande :
```bash [Terminal]
sudo mkdir /docker
```
À partir d'ici, nous partons du principe que les stacks sont installées dans le dossier `/srv/docker`, créé avec la commande :
```bash [Terminal]
sudo mkdir /srv/docker
```
::
## Installer [dockge](https://github.com/louislam/dockge) pour gérer et déployer les conteneurs
[Dockge](https://github.com/louislam/dockge) est un outil web permettant de créer, configurer, lancer et gérer des conteneurs pour Docker. C'est une interface simple, intuitive, qui est plus légère et plus facile pour les débutants que d'utiliser docker en CLI ou Portainer.
## Installer [Dockge](https://github.com/louislam/dockge) pour gérer et déployer les conteneurs
[Dockge](https://github.com/louislam/dockge) est un outil web pour créer, configurer, lancer et gérer des conteneurs Docker. C'est une interface simple et intuitive, plus légère et plus abordable pour un débutant que la ligne de commande ou Portainer.
![picture](/img/serveex/dockge.png)
### Configuration
Plan des fichiers que nous allons modifier :
::file-tree
---
label: Structure de fichiers que nous allons créer
tree:
/:
- srv:
- docker:
- dockge:
- compose.yml
---
::
```text [Arborescence]
root
└── docker
└── dockge
└── compose.yml
```
Créez le dossier de la stack :
::steps{level="4"}
#### Créer le dossier de la stack
```bash [Terminal]
cd /docker
cd /srv/docker
sudo mkdir dockge
```
Puis créez le fichier `compose.yml` dans ce dossier avec l'outil nano que vous avez installé préalablement (dans les outils CLI)
#### Créer le fichier compose
```bash [Terminal]
cd /docker/dockge
cd /srv/docker/dockge
sudo nano compose.yml
```
Appuyer sur `i` pour rentrer en modif et copiez-collez ceci.
Collez ce qui suit :
```yaml [compose.yaml]
---
@@ -92,39 +93,46 @@ services:
restart: unless-stopped
container_name: dockge
ports:
- 3555:5001 # Le port joignable depuis le LAN sera 3555
- 3555:5001 # le port accessible sur le réseau local sera 3555
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /docker/dockge/data:/app/data
- /docker:/docker
- /srv/docker/dockge/data:/app/data
- /srv/docker:/srv/docker
environment:
- DOCKGE_STACKS_DIR=/docker
- DOCKGE_STACKS_DIR=/srv/docker
```
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Ente"}, puis quittez avec :kbd{value="Ctrl+X"}.
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
Pour lancer le conteneur, tapez :
#### Lancer le conteneur
```bash [Terminal]
cd /docker/dockge
cd /srv/docker/dockge
sudo docker compose up -d
```
Une fois lancé, tapez dans votre navigateur `http://ipduserveur:3555` et vous tomberez sur la page de login.
Plus d'info sur [dockge et comment l'utiliser](https://github.com/louislam/dockge)
Allez ensuite sur `http://ipdevotreserveur:3555` dans votre navigateur pour accéder à la page de connexion.
Et voilà, vous avez installé docker et un outil facile pour manager vos conteneurs !
Plus d'infos sur [Dockge et son utilisation](https://github.com/louislam/dockge)
## [Watchtower](https://watchtower.nickfedor.com/), pour mettre à jour automatiquement les conteneurs
Watchtower est un conteneur qui permet de vérifier les mise à jour et d'installer les nouvelles images sans effort, en ajoutant un simple label dans les fichiers `compose.yml` de vos conteneurs.
#### Terminé !
::
Et voilà ! Docker et un outil pour gérer facilement vos conteneurs sont prêts !
## [Watchtower](https://watchtower.nickfedor.com/), pour mettre à jour les conteneurs automatiquement
Watchtower est un conteneur qui vérifie les mises à jour et récupère les nouvelles images automatiquement, simplement en ajoutant un label dans les fichiers `compose.yml` de vos conteneurs.
### Configuration
::steps{level="4"}
#### Créer la stack
- Ouvrez Dockge dans votre navigateur
- Cliquez sur `compose`
- Nommez la stack `watchtower`
- Copiez collez la configuration ci-dessous à la place de la configuration par défaut dans Dockge
- Collez la configuration ci-dessous dans la zone de configuration par défaut de Dockge
```yaml [compose.yaml]
---
@@ -138,10 +146,10 @@ services:
environment:
- TZ=Europe/Paris
- WATCHTOWER_SCHEDULE=${SCHEDULE}
- WATCHTOWER_LABEL_ENABLE=true # watchtower scan tous les conteneurs qui ont le label com.centurylinklabs.watchtower.enable=true
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_REMOVE_VOLUMES=true
#Notifications Discord - décommenter si utilisé
# Notifications Discord - décommentez si utilisées
#- WATCHTOWER_NOTIFICATIONS=slack
#- WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=Watchtower
#- WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=${WH_URL}
@@ -149,24 +157,33 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
```
Puis remplissez les données ci-dessous dans l'encart ".env" de Dockge
#### Renseigner vos variables d'environnement
Remplissez la section `.env` dans Dockge avec ce qui suit :
```properties [.env]
SCHEDULE=
WH_URL=
```
| Propriété | Valeur | Exemples |
|-------------------------|---------------------------------------------------------------------|----------------------------------------------|
| `SCHEDULE`{lang=properties} | Format cron | `0 0 6 * * *` (tous les jours à 6h du matin) |
| `WH_URL`{lang=properties} | URL du webhook de votre serveur Discord - ajouter `/slack` à la fin | `https://serveurdiscord/valeur/slack` |
| Propriété | Valeur | Exemples |
|----------------|--------------------------------------------------------------------|----------------------------------------------|
| `SCHEDULE` | Format cron | `0 0 6 * * *` (tous les jours à 6h) |
| `WH_URL` | L'URL de votre webhook Discord, ajoutez `/slack` à la fin | `https://votreserveurdiscord/webhook/slack` |
Pour que Watchtower surveille vos autres conteneurs, ajoutez ceci à vos conteneurs dans leur compose.yml :
#### Activer Watchtower sur les autres conteneurs
Pour que Watchtower surveille vos autres conteneurs, ajoutez ceci à leur `compose.yml` :
```yaml [compose.yaml]
---
labels:
- com.centurylinklabs.watchtower.enable=true
- com.centurylinklabs.watchtower.enable=true
```
Puis relancez les stacks modifiés. Et voilà, vous avez une bonne carcasse pour commencer à installer les services qui vous plaisent !
Redémarrez ensuite les stacks modifiées.
#### Terminé !
::
Et c'est tout ! Vous avez maintenant une base solide pour commencer à déployer les services que vous voulez !