Par défaut Docker stocke l'ensemble des données dans le répertoire /var/lib/docker
. Comme il contient à la fois les images et les volumes nommés, sa taille peut rapidement augmenter.
Arrêter le service:
systemctl stop docker.service
Redéfinir la configuration par défaut via le fichier /etc/docker/daemon.json
Afficher la version du daemon docker:
/usr/bin/dockerd --version
Pour les version antérieures à 17.05.0, utiliser la variable graph
{ "graph": "/path/to/your/new/docker/root" }
Pour les versions 17.05.0 et supérieure, même si graph
est encore disponible la documentation recommande l'usage de la variable plus explicite data-root
{ "data-root": "/path/to/new/docker/daemon-data-root" }
Créer la nouvelle racine si besoin et copier l'ancien répertoire racine du service vers la nouvelle destination
sudo mkdir -p "/path/to/new/docker/daemon-data-root" chmod 750 "/path/to/new/docker/daemon-data-root" # via cp sudo cp -rp /var/lib/docker/* "/path/to/new/docker/daemon-data-root" # équivalent via rsync sudo rsync -aP /var/lib/docker/ "/path/to/new/docker/daemon-data-root"
Renommer l'ancienne racine du service pour s'assurer que le daemon ne l'utilise plus:
sudo mv /var/lib/docker /var/lib/docker.bak
Redémarrer le service et vérifier la présence des images, des volumes et des conteneurs:
sudo systemctl start docker.service docker images docker volume list docker container list -a
Si tout est normal, on peut supprimer le dossier /var/lib/docker.bak et son contenu:
sudo rm -fr /var/lib/docker.bak