Déplacement du répertoire
Le répertoire par défaut de Docker est dans /var/lib/docker pour les volumes par exemple. Dans le cas d’une installation +/- par défaut, avec la séparation des partitions home, var et tmp, proposée par l’installeur Debian, nous pouvons rapidement nous retrouver à court d’espace disque.
Pour déplacer le répertoire, nous commençons par stopper les services Docker :
# sudo systemctl stop docker
Puis nous vérifions que les services sont bien stoppés :
# sudo systemctl status docker
Nous partons du principe que nous transférons le répertoire dans /home/docker. Pour créer le répertoire, nous utilisons “mkdir /home/docker”. Nous copions ensuite des données avec rsync :
# rsync -avxP /var/lib/docker/ /home/docker
Le fichier de configuration de Docker doit ensuite être mis à jour pour refléter le changement. Pour cela, nous éditons le fichier /lib/systemd/system/docker.service :
# vi /lib/systemd/system/docker.service
Et nous changeons la ligne
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
par
# ExecStart=/usr/bin/dockerd *-g /home/docker* -H fd:// --containerd=/run/containerd/containerd.sock
Nous relançons le systemd ensuite, avec la commande :
# sudo systemctl daemon-reload
enfin, nous redémarrons Docker :
# systemctl start docker
Attention : /lib/systemd/system/docker.service appartient au paquet docker-ce. Une prochaine mise à jour du paquet peut écraser ce fichier et faire disparaître silencieusement la modification (Docker repartirait alors sur /var/lib/docker sans avertissement). La méthode pérenne, recommandée par la documentation Docker, est de définir "data-root": "/home/docker" dans /etc/docker/daemon.json, ou à défaut de passer par un override systemd (systemctl edit docker.service) plutôt que d’éditer directement le fichier unité.