177 lines
5.6 KiB
Markdown
177 lines
5.6 KiB
Markdown
---
|
|
navigation: true
|
|
title: Docker
|
|
main:
|
|
fluid: false
|
|
---
|
|
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
|
# Docker
|
|
|
|
Docker, pour installer des services déployables en quelques secondes, et les manager en quelques commandes/clics.
|
|
|
|
::alert{type="info"}
|
|
🎯 __Objectifs :__
|
|
- 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
|
|
::
|
|
|
|

|
|
|
|
## Installer docker
|
|
---
|
|
Installez les repo Docker et la clé GPG
|
|
|
|
```shell
|
|
# Add Docker's official GPG key:
|
|
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
|
|
sudo apt-get update
|
|
```
|
|
Installez les package
|
|
|
|
```shell
|
|
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/)
|
|
|
|
::alert{type="info" icon="exclamation-circle"}
|
|
:::list{type="info"}
|
|
- Dans toute la suite, on part du principe que les stacks sont installées dans le dossier `/docker`, créé grace à la commande :
|
|
:::
|
|
```shell
|
|
sudo mkdir /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.
|
|
|
|

|
|
|
|
### Configuration
|
|
|
|
Plan des fichiers que nous allons modifier :
|
|
|
|
```console
|
|
root
|
|
└── docker
|
|
└── dockge
|
|
└── compose.yml
|
|
```
|
|
|
|
Créez le dossier de la stack :
|
|
|
|
```shell
|
|
cd /docker
|
|
sudo mkdir dockge
|
|
```
|
|
|
|
Puis créez le fichier `compose.yml` dans ce dossier avec l'outil vim que vous avez installé préalablement (dans les outils CLI)
|
|
|
|
```shell
|
|
cd /docker/dockge
|
|
sudo vi compose.yml
|
|
```
|
|
Appuyer sur `i` pour rentrer en modif et copiez-collez ceci.
|
|
|
|
```yaml
|
|
version: "4"
|
|
services:
|
|
dockge:
|
|
image: louislam/dockge:1
|
|
restart: unless-stopped
|
|
container_name: dockge
|
|
ports:
|
|
- 3555:5001 # Le port joignable depuis le LAN sera 3555
|
|
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /docker/dockge/data:/app/data
|
|
- /docker:/docker
|
|
environment:
|
|
- DOCKGE_STACKS_DIR=/docker
|
|
```
|
|
|
|
Appuyez sur `Echap` pour quitter le mode modif et tapez `:x` pour enregistrer et quitter
|
|
|
|
|
|
Pour lancer le conteneur, tapez :
|
|
|
|
```shell
|
|
cd /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)
|
|
|
|
Et voilà, vous avez installé docker et un outil facile pour manager vos conteneurs !
|
|
|
|
## [Watchtower](https://github.com/containrrr/watchtower?tab=readme-ov-file), 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.
|
|
|
|
### Configuration
|
|
|
|
- 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
|
|
|
|
```yaml
|
|
version: "2.3"
|
|
services:
|
|
watchtower:
|
|
container_name: watchtower
|
|
image: containrrr/watchtower:latest
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
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_CLEANUP=true
|
|
- WATCHTOWER_REMOVE_VOLUMES=true
|
|
#Notifications Discord - décommenter si utilisé
|
|
#- WATCHTOWER_NOTIFICATIONS=slack
|
|
#- WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=Watchtower
|
|
#- WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=${WH_URL}
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
```
|
|
|
|
Puis remplissez les données ci-dessous dans l'encart ".env" de Dockge
|
|
|
|
```properties
|
|
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` |
|
|
|
|
|
|
Pour que Watchtower surveille vos autres conteneurs, ajoutez ceci à vos conteneurs dans leur compose.yml :
|
|
|
|
```yaml
|
|
labels:
|
|
- 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 !
|