Outils pour utilisateurs

Outils du site


sysadmin:docker:modifier_dossier_racine

Modifier le root applicatif du service Docker

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.

Migration du root applicatif

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"

Test de la nouvelle configuration

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 

Références

sysadmin/docker/modifier_dossier_racine.txt · Dernière modification : 2021/11/17 17:50 de yoann