Installation de Docker

Installation de Docker

Installer Docker simplement sous Linux et comprendre Docker Compose

Docker permet d’installer et de faire fonctionner des applications dans des "conteneurs", sans modifier profondément son système.
C’est particulièrement utile en radioamateur pour déployer :

  • un site web,
  • un serveur de monitoring relais,
  • une base de données,
  • un outil APRS,
  • ou tout autre service comme svxlink, mmdvmhost, ...

Voici une installation simple, suivie d’une explication Docker Compose.

Plus d'information consulter la documentation officielle:

Get Docker
Download and install Docker on the platform of your choice, including Mac, Linux, or Windows.

📦 Installer Docker avec le script officiel

Docker fournit un script automatique qui installe la bonne version selon votre distribution.

Télécharger et lancer le script :

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Ce script :

  • ajoute le dépôt officiel Docker
  • installe Docker Engine
  • installe containerd
  • active le service au démarrage

✅ Vérifier si Docker est démarré

systemctl status docker

Si tu vois active (running) → tout est bon ✅

🚀 Démarrer Docker manuellement

Si le service n’est pas actif :

sudo systemctl start docker

Pour qu’il démarre automatiquement au boot :

sudo systemctl enable docker

👤 Utiliser Docker sans sudo

Par défaut, Docker nécessite les droits administrateur.
Pour éviter d’utiliser sudo à chaque commande :

sudo usermod -aG docker $USER

$USER

⚠️ Important :

  • -a signifie ajouter
  • -G précise le groupe
  • ne jamais oublier -a, sinon vous écrasez les groupes existants
  • $USER correspond à votre nom d'utilisateur (ex: pipour le Raspberry)
docker run hello-world

Si cela fonctionne sans sudo, c’est bon 🎉


🧱 Comprendre Docker Compose

Autrefois, Docker Compose était un programme séparé (docker-compose).
Aujourd’hui, il est intégré directement dans Docker.
On l’utilise avec :
docker compose(avec un espace, et non plus un tiret)

🎯 À quoi sert Docker Compose ?

Docker Compose permet de :

  • lancer plusieurs conteneurs en même temps
  • définir toute une infrastructure dans un seul fichier
  • démarrer un service complexe avec une seule commande

Très pratique pour :

  • un site web + base de données
  • un service radio + tableau de bord

📄 Exemple simple avec docker-compose.yml

nano docker-compose.yml

Exemple minimal d'un serveur web Nginx:

services:
  nginx:
    image: nginx:latest
    ports:
      - "8080:80"

Puis lancer :

docker compose up -d

Docker télécharge l’image et démarre le service.

Arrêter :

docker compose down

🚀 Pourquoi Docker Compose est intéressant ?

Imaginez :

  • un serveur de monitoring relais
  • une base de données
  • une logique d'un relais type svxlink ou mmdvmhost

Avec Docker Compose :

  • tout est défini dans un seul fichier
  • la sauvegarde est simple
  • la migration vers un autre serveur est rapide
  • la reconstruction prend quelques minutes

C’est idéal pour un Raspberry Pi, un VPS ou un petit serveur dédié.

🚀 Démarrer une application

▶️ Lancer les services

docker compose up

Cela :

  • lit le fichier docker-compose.yml
  • télécharge les images si nécessaire
  • crée les conteneurs
  • affiche les logs dans le terminal

🔇 Lancer en arrière-plan

docker compose up -d

-d signifie detached (mode arrière-plan).

👉 C’est l’option la plus utilisée pour un serveur.


🛑 Arrêter les services

docker compose down

Cela :

  • arrête les conteneurs
  • les supprime
  • conserve les volumes (sauf option contraire)

❗ Supprimer aussi les volumes

docker compose down -v

⚠️ Attention : les données seront supprimées si elles sont dans des volumes Docker.


🔄 Redémarrer

docker compose restart

Ou pour un seul service :

docker compose restart "nom_du_service"

📋 Voir les conteneurs actifs

docker compose ps

Affiche l’état des services définis dans ton compose.


📜 Voir les logs

docker compose logs

Suivre les logs en temps réel :

docker compose logs -f

Pour un service spécifique :

docker compose logs -f svxlink

Très utile pour déboguer un site ou un service radio.


🧹 Mettre à jour les images ou reconstruire une image

Télécharger les dernières versions :

docker compose pull ou docker compose build --no-cache

Puis :

docker compose up -d

Simple, propre, efficace.


🎯 Résumé des commandes essentielles

CommandeÀ quoi ça sert
docker compose up -dDémarrer en arrière-plan
docker compose downArrêter et supprimer
docker compose restartRedémarrer
docker compose psVoir l’état
docker compose logs -fVoir les logs en direct
docker compose pullMettre à jour les images
docker compose up -d --buildRebuild et redémarrer

💡 Astuce pratique

Dans un dossier contenant ton docker-compose.ymlou compose.yml, tu peux simplement faire :

docker compose up -d

Docker sait automatiquement quel fichier utiliser.

📘 Résumé des options principales de docker-compose.yml ou compose.yml

Un fichier docker-compose.yml ou compose.yml permet de définir et lancer plusieurs conteneurs avec une seule commande :

docker compose up -d

Voici les options les plus importantes à connaître.


🧱 services

Définit les conteneurs à lancer.

services:
  web:
    image: nginx

Chaque service = un conteneur. Dans cette exemple le service et web.


🐳 image

Indique l’image Docker à utiliser.

image: svxlink:latest

🌐 ports

Expose un port du conteneur vers la machine hôte.

ports:
  - "8080:80"

Format :

PORT_MACHINE:PORT_CONTENEUR


💾 volumes

Permet de conserver les données en dehors du conteneur.

volumes:
  - ./data:/var/lib/app

Format :

DOSSIER_MACHINE:DOSSIER_CONTENEUR

Indispensable pour bases de données et fichiers persistants.


🔁 restart

Gère le redémarrage automatique.

restart: unless-stopped

Options courantes :

  • no
  • always
  • unless-stopped ✅ (recommandé pour un serveur)
  • on-failure

🌍 environment

Définit des variables d’environnement.

environment:
  - TZ=Europe/Paris
  - NODE_ENV=production

🔗 depends_on

Définit l’ordre de démarrage.

depends_on:
  - db

🏷 container_name

Permet de donner un nom personnalisé au conteneur.

container_name: ghost_blog

🌐 networks

Permet de connecter plusieurs conteneurs entre eux.

networks:
  - backend

(Utile pour des architectures plus avancées.)


🎯 Les 5 options essentielles à retenir

Pour 90 % des usages (site web, monitoring, outils radio), tu utiliseras surtout :

  • image
  • ports
  • volumes
  • restart
  • environment

🔐 Petit rappel sécurité

Le groupe docker donne quasiment des droits administrateur.
À utiliser uniquement sur une machine de confiance.


Conclusion

Docker simplifie énormément le déploiement de services techniques.
Docker Compose permet d’aller plus loin en structurant proprement une infrastructure.

Pour quelqu'un qui aime expérimenter, c’est un outil extrêmement puissant tout en gardant votre OS propre 💪