Passer au contenu principal

Introduction (Docker)

Installation et configuration de Docker

Docker Engine s'installe depuis le dépôt officiel Docker. Éviter les packages des dépôts Debian (docker.io) : ils sont souvent en retard d'une version majeure. La configuration du daemon mérite attention, notamment les limites de logs et le driver de stockage.

Installation sur Debian 13

# Dépendances
apt-get update && apt-get install -y ca-certificates curl

# Clé GPG officielle Docker
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

# Dépôt Docker
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"   | tee /etc/apt/sources.list.d/docker.list

# Installation
apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Vérification
docker --version
docker compose version

Post-installation

# Ajouter l'utilisateur courant au groupe docker (évite sudo pour chaque commande)
usermod -aG docker $USER
newgrp docker   # ou se reconnecter

# Activer et démarrer dockerd
systemctl enable --now docker

# Test
docker run hello-world

L'appartenance au groupe docker est équivalente à un accès root. Sur les systèmes de production, préférer le mode rootless ou restreindre l'accès socket.

Configuration du daemon (daemon.json)

// /etc/docker/daemon.json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "default-address-pools": [
    {"base": "172.17.0.0/16", "size": 24}
  ],
  "live-restore": true,
  "userland-proxy": false
}
systemctl restart docker
  • log-opts : sans limite, les logs JSON grossissent indéfiniment en production
  • live-restore : les containers continuent de tourner pendant un restart du daemon
  • userland-proxy : false améliore les performances réseau (utilise iptables direct)

Mode rootless

Docker rootless fait tourner le daemon et les containers sans privilèges root. Recommandé sur les workstations et les environnements multi-utilisateurs.

# Installation rootless (en tant qu'utilisateur normal)
dockerd-rootless-setuptool.sh install

# Démarrer
systemctl --user start docker
systemctl --user enable docker

# Configurer DOCKER_HOST
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock