Comment stocker des images et des conteneurs Docker sur un lecteur externe

0
107

Docker stocke les images téléchargées, les conteneurs en cours d'exécution et les données de volume persistant dans une seule racine de répertoire partagé sur votre lecteur système . Vous pouvez personnaliser votre configuration pour utiliser un lecteur externe, un partage réseau ou un deuxième disque interne si vous avez besoin d'ajouter du stockage à votre installation.

Préparation

Le principal une partie de ce guide s'applique à Docker Engine pour Linux et Docker Desktop sous Windows et Mac. Vous devrez trouver votre fichier Docker daemon.json sur les trois plates-formes. Ce sera dans l'un des emplacements suivants :

  • /etc/docker/daemon.json sur Linux.
  • %programdata%dockerconfigdaemon.json sur Windows.
  • ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json sur Mac.
  • < /ul>

    Docker conseille aux utilisateurs Windows et Mac de mettre à jour le fichier de configuration via l'interface utilisateur, au lieu d'appliquer manuellement les modifications dans un éditeur de texte. Vous pouvez accéder à l'écran des paramètres en vous rendant dans Préférences > Moteur Docker > Modifiez le fichier dans l'interface Docker Desktop.

    Modification de votre répertoire de données

    L'emplacement du répertoire de données de Docker est contrôlé par le paramètre data-root dans votre fichier de configuration. Les anciennes versions de Docker publiées avant la 17.06 utilisaient le graphique à la place. Vous pouvez vérifier la version que vous avez en exécutant la commande docker version.

    $ docker version … Serveur : Docker Engine – Community Engine : Version : 20.10.17

    Recherchez ou ajoutez la clé appropriée à l'intérieur du fichier de configuration. Définissez le chemin de répertoire souhaité comme valeur. Voici un exemple Linux qui stockera les données Docker sur un lecteur externe monté dans le système de fichiers :

    { "data-root" : "/mnt/docker-data" }

    Vous devez redémarrer le démon Docker après avoir effectué la modification :

    $ sudo service docker restart

    Docker Desktop peut être redémarré sur Windows et Mac en le quittant, puis en lançant une nouvelle instance.

    Vous devez copier le contenu de votre répertoire de données actuel dans le nouveau chemin si vous souhaitez conserver votre contenu existant. Sinon, vous commencerez avec une table rase, incapable d'accéder aux conteneurs et aux images précédemment créés.

    $ sudo rsync -aSv /var/lib/docker//mnt/docker-data

    Modification du répertoire de données sans redémarrage

    Vous pouvez déplacer votre répertoire de données sans redémarrer le démon en créant un lien symbolique depuis /var/lib/docker vers votre nouvel emplacement. Cela peut être utile si vous manquez d'espace sur un hôte où un redémarrage non planifié du service Docker n'est pas une option viable.

    Copiez vos données Docker existantes dans votre nouveau répertoire :

    $ sudo rsync -aSv /var/lib/docker//mnt/docker-data

    Créez ensuite un lien symbolique qui résout /var/lib/docker à l'emplacement cible :

    $ sudo ln -s/mnt/docker-data//var/lib/docker

    N'utilisez pas cette technique pour les charges de travail qui modifient rapidement les données du système de fichiers. Il existe un risque d'incohérences si des données sont écrites entre la copie du répertoire existant et la création du lien symbolique.

    Qu'est-ce qui change réellement ?

    La modification du répertoire racine de Docker affecte tous les différents types de données stockés par le démon. Cela inclut vos images, conteneurs, plugins installés, configuration Swarm et volumes, ainsi que le cache de construction Docker.

    La modification du chemin écrira toutes ces données dans votre nouvel emplacement. Vous ne pouvez pas déplacer de manière sélective des types spécifiques vers des points de montage distincts. Cela signifie qu'il est important de sélectionner un emplacement de stockage qui offrira de bonnes performances globales. L'utilisation d'un lecteur externe lent pourrait nuire à la réactivité des opérations de la CLI Docker, même si cela conviendrait à certains types de données, comme le stockage d'images à long terme.

    En l'absence de prise en charge des chemins de données par type, l'élagage des ressources inutilisées peut être un meilleur moyen de gérer les besoins de stockage de Docker. Au lieu d'allouer plus d'espace à Docker, nettoyez les actifs redondants et transférez les images inutilisées vers un registre central séparé. Cela peut libérer un espace considérable sur votre hôte.

    Utilisation unique d'un autre répertoire de données

    < p>Vous pouvez démarrer manuellement Docker Engine avec un répertoire de données spécifique en transmettant l'indicateur –data-root lorsque vous démarrez le démon. Cela peut être utilisé pour basculer entre les répertoires de données ou exécuter une instance propre sans vos données existantes.

    $ sudo /usr/bin/dockerd –data-root /mnt/docker-data

    Le drapeau remplacera le chemin d'accès au répertoire spécifié par le fichier daemon.json. Le répertoire configuré restera intact afin que vous puissiez revenir à cette instance à l'avenir.

    Résumé

    Docker stocke toutes ses données, y compris les images construites et extraites, les conteneurs créés et les volumes dans une seule arborescence de répertoires. La racine est généralement /var/lib/docker mais vous pouvez la personnaliser en ajoutant un paramètre à votre fichier de configuration ou en fournissant l'indicateur –data-root lorsque vous démarrez le démon.

    Changer le répertoire de données signifie vos données existantes n'apparaîtront pas dans Docker à moins que vous ne les copiez dans le nouveau chemin. Vous pouvez utiliser cette fonctionnalité pour gérer plusieurs référentiels de stockage Docker indépendants, tels qu'un pour les projets personnels et un autre pour le travail. Vous devrez cependant redémarrer le démon avant de changer de contexte, car une seule instance peut s'exécuter simultanément.

    LIRE LA SUITE

    • › Asus’ Le nouveau PC de bureau a des ports pour USB Type-C et & # 8230; PS/2 ?
    • &rsaquo ; La nouvelle sonnette filaire Nest offre plus de fonctionnalités dans un boîtier plus petit
    • &rsaquo ; Quels Chromebooks prennent en charge Steam ?
    • › L'application Google Home a un nouveau look et une automatisation plus puissante
    • › Impossible de trouver un Raspberry Pi ? Achetez plutôt un NUC d'occasion
    • &rsaquo ; Le nouveau routeur maillé de Google prend en charge Wi-Fi 6E et Matter