Recherche de site Web

Comment modifier le répertoire de données par défaut de Docker


Plus de place pour vos déploiements ? Voici un guide rapide pour déplacer le chemin de stockage de Docker pour les images, les volumes, les conteneurs, etc.

Le manque d’espace disque est l’un des problèmes les plus courants auxquels les utilisateurs sont confrontés. Lorsque vous utilisez des services Docker conteneurisés, atteindre ce point signifie que vos déploiements cesseront de fonctionner. Cela se produit pour une raison simple : votre système Linux devient incapable d'exécuter d'autres opérations d'écriture sur le disque.

Heureusement, il existe une solution pratique. Cet article vous guidera à travers les étapes permettant de déplacer le chemin de stockage de Docker pour les images, les volumes, les conteneurs, etc., garantissant ainsi que vos projets se poursuivent sans problème sans les tracas des limitations d'espace disque.

Pour clarifier les choses, considérez ceci : notre disque est plein à 99 %, ce qui est dangereusement proche de rendre l'ensemble de notre système Linux inutilisable. Nous avons ajouté un nouveau disque de 100 Go pour gérer cette situation désagréable et l'avons monté en tant que répertoire « /data » dans notre système de fichiers.

Nous prévoyons de déplacer toutes les ressources Docker vers cet emplacement, ce qui libère un espace important sur la partition racine « / ». Cela garantira que non seulement Docker, mais également notre système Linux dans son ensemble, continueront de fonctionner sans aucun problème.

Étape 1 : Arrêter le service Docker

Avant d'apporter des modifications, assurez-vous que tous vos conteneurs sont arrêtés et que Docker n'est pas en cours d'exécution. Vous pouvez le faire en utilisant les commandes suivantes :

sudo systemctl stop docker.service
sudo systemctl stop docker.socket

Bien sûr, n’oubliez pas que cela entraînera l’arrêt de tous vos conteneurs Docker, les temps d’arrêt sont donc inévitables.

Étape 2 : déplacer le répertoire de données du Docker

Docker stocke toutes ses données dans un répertoire par défaut, y compris les images, les conteneurs, les volumes et les réseaux. Sur la plupart des systèmes Linux, il s'agit généralement de « /var/lib/docker ». Bien que cela fonctionne bien pour les configurations initiales, à mesure que le nombre de projets augmente, les données augmentent également.

Pour cette raison, l'étape suivante consiste à déplacer le répertoire Docker existant vers un nouvel emplacement avec plus d'espace disque, qui, dans notre cas, est le répertoire « /data ». Créons d'abord un sous-répertoire pour celui-ci, par exemple « docker », dans lequel nous prévoyons de déplacer et de stocker nos données Docker à l'avenir.

sudo mkdir /data/docker

Il est temps de passer à l’action. Bien que vous puissiez utiliser la commande récursive cp ou même mv pour transférer des données, nous vous déconseillons cela. Au lieu de cela, la méthode la plus sûre et la plus fiable est la commande rsync. S'il n'est pas déjà disponible sur votre distribution Linux, vous pouvez facilement l'ajouter en installant le package « rsync » via votre gestionnaire de packages.

Pour copier toutes les données du répertoire « /var/lib/docker » vers le répertoire « /data/docker », nous exécutons la commande ci-dessous, car le premier argument est le répertoire source, et le second est la destination.

sudo rsync -aP /var/lib/docker/ /data/docker/

D'accord, que fait cette commande ? L'option « -a » (mode archive) permet la copie récursive de fichiers tout en préservant tous les liens symboliques, les autorisations de fichiers, la propriété des utilisateurs et des groupes et les horodatages. L'option -P conserve les fichiers partiellement transférés si le transfert est interrompu. Il affiche également la progression du transfert pour chaque fichier en cours de copie.

Pour des informations plus détaillées sur la commande rsync, consultez notre guide complet, « Commande Rsync sous Linux avec des exemples pratiques ».

Étape 3 : mettre à jour la configuration de Docker

Après avoir copié les données, vous devez indiquer à Docker où trouver sa nouvelle maison. Cela peut être fait en modifiant le fichier de configuration spécial Docker, « daemon.json », dans le répertoire « /etc/docker ».

Notez qu'une installation Docker ne crée pas automatiquement ce fichier, donc si vous n'avez effectué aucune configuration manuelle auparavant, il est normal que le fichier soit manquant. Si tel est le cas, créez-le et placez-le dans l'extrait ci-dessous. Bien sûr, n'oubliez pas de remplacer « /new/docker/root » par le chemin du système de fichiers approprié pour votre configuration.

sudo nano /etc/docker/daemon.json
{ 
   "data-root": "/new/docker/root"
}

Enfin, enregistrez le fichier et quittez.

Étape 4 : Démarrez Docker et Vérifiez la nouvelle configuration

Bon, le moment de vérité. Démarrez le service Docker :

sudo systemctl start docker.socket
sudo systemctl start docker.service

Assurez-vous que le service Docker a démarré correctement et est pleinement opérationnel.

sudo systemctl status docker

Enfin, assurez-vous que Docker utilise par défaut le répertoire que nous avons spécifié pour le stockage des données :

sudo docker info | grep "Docker Root Dir"

Cela devrait afficher le nouveau chemin, confirmant que la relocalisation a réussi.

Étapes post-installation

Assurez-vous que tous vos conteneurs Docker fonctionnent comme prévu. S'ils ne sont pas configurés pour démarrer automatiquement, exécutez-les manuellement un par un et vérifiez toute irrégularité dans leur fonctionnement.

Ce n'est qu'après avoir vérifié que tout fonctionne correctement que vous pouvez procéder à la libération d'espace disque en supprimant le répertoire précédemment utilisé par Docker pour stocker les données.

sudo rm -rf /var/lib/docker/

Conclusion

Le déplacement du chemin de stockage de Docker est un processus simple qui peut considérablement alléger les contraintes d'espace disque, vous permettant ainsi de faire évoluer vos projets. Cela garantit le bon fonctionnement continu de vos services Dockerisés et empêche votre système Linux de devenir inutilisable en raison d'un manque d'espace disque.

Nous souhaitons également mentionner que vous pouvez modifier le service Docker de systemd pour obtenir le même résultat au lieu de modifier le fichier « daemon.json ». Cependant, nous considérons cette approche comme une solution de contournement plutôt qu’une solution appropriée, et nous ne la recommandons pas, c’est pourquoi nous ne l’abordons pas dans notre guide.

Reportez-vous à la documentation officielle pour des informations plus détaillées sur la configuration de Docker à l'aide du fichier « daemon.json ».

Nous vous sommes reconnaissants d'avoir utilisé ce guide et espérons qu'il a rendu le processus clair et gérable. Nous apprécions vos commentaires et commentaires, alors n'hésitez pas à les partager dans la section ci-dessous. Bon déploiement !

Articles connexes: