Système de fichiers racine en lecture seule

read_only: true monte l'image du conteneur en lecture seule : rien ne peut être ajouté ni modifié en dehors des volumes et des montages tmpfs, ni par l'application, ni par un attaquant qui en prend le contrôle.

Comment ça marche

Les données vont dans des volumes ; l'espace de travail va dans un tmpfs (tmpfs: [/tmp]), un petit dossier en mémoire vidé à chaque démarrage. Les images documentent les dossiers où elles écrivent : nginx utilise /var/cache/nginx et un fichier pid, PostgreSQL /var/run/postgresql. docker diff sur un conteneur en marche liste ce qu'il a écrit jusque-là.

Ce qui casse

Les programmes qui écrivent au démarrage échouent avec Read-only file system (EROFS) : un dossier temporaire, un fichier pid, un cache. La solution est un tmpfs ou un volume pour ce chemin seulement, jamais l'abandon de read_only pour tout le conteneur.

Dans compose.yaml

services:
  api:
    image: shop-api:4.6
    read_only: true
    tmpfs:
      - /tmp

Regarde-le casser, puis répare-le

Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.