Déplacer le répertoire Docker

Déplacer le répertoire Docker

NicolasSchmid Lv2

Problémetique

J’ai été confronté à un problème important lorsque mon serveur a commencé à accumuler beaucoup d’image docker et commençait à exécuter beaucoup de containeurs. Le serveur en question a 3 disques durs SSD:

  • 250 GO (OS)
  • 250 GO (Serveurs de jeu)
  • 250 GO (Machines virtuelles)

J’ai donc décidé de changer le répertoire docker de location pour pouvoir utiliser la place existante sur d’autres disques de mon serveur.

Je vous conseille de faire ces manipulations avec une installation propre de docker parceque lorsque j’ai déplacé mes données de docker dans le nouveau répertoire, j’ai eu beaucoup de problèmes avec les plugins, les réseaux, surtout les volumes (avec portainer)

Stockage docker

Docker stocka par défaut ses données dans le répertoire suivant:

/var/lib/docker

Voici la structure actuelle de ce stockage:

Arborescence stockage docker

Les images sont stockées dans overlay2, les containeurs dans containers et même fonctionnement pour le reste (logique).

Changer le répertoire par défaut de docker

Le répertoire par défaut de docker est changable grâce à un fichier de configuration.

Copie des données actuelles de docker

Lorsque vous avez déjà des images, containeurs, réseaux existant dans docker, vous pouvez faire une copie pour retrouver exactement la même configuration docker lorsque vous redémarrerez le service. Si votre installation est nouvelle, vous pouvez passer cette étape.

Premièrement, assurez vous que docker est complètement arrêté:

1
sudo systemctl stop docker

Pour copier le contenu du répertoire docker à sa nouvelle destination, voici la commande:

1
sudo rsync -aP /var/lib/docker /GameServer

Les données seront copiée dans /GameServer en gardant les attributs comme les droits, les dates de modification et en prenant en compte les fichiers en cours d’utilisation.

Modification du fichier de configuration docker

Maintenant, je peux indiquer à docker où se situe son répertoire de données par défaut. Pour cela, je vais premièrement m’assurer que docker est bien arrêté:

1
sudo systemctl stop docker

Ensuite, je vais ouvrir le fichier dans /etc/docker/daemon.json et rajouter / modifier ces lignes:

1
2
3
{
"data-root": "/GameServer/docker"
}

Remplacez bien le répertoire par celui dans lequel se trouvent toutes vos données docker.

Maintenant vous pouvez redémarrer votre docker et tout devrait fonctionner avec le nouveau répertoire root de stockage.

Effacer les anciennes données

Le but premier de ces manipulations est de libérer de l’espace. Je vais donc effacer l’ancien répertoire docker dans /var/lib/docker.

Avant d’effacer votre ancien répertoire docker, assurez vous que tout fonctionne correctment comme avant, je recommande fortement de faire une sauvegarde de sécurité (backup) avant d’exécuter cette commande

La commande suivante effacera complètement ce répertoire:

1
sudo rm -R /var/lib/docker
  • Title: Déplacer le répertoire Docker
  • Author: NicolasSchmid
  • Created at : 21.12.2023 20:41:33
  • Updated at : 17.03.2024 19:21:16
  • Link: https://doc.spacesdata.net/2023/12/21/Deplacer-le-repertoire-Docker/
  • License: This work is licensed under CC BY-NC-SA 4.0.