web-dev-qa-db-fra.com

Comment déplacer les images Docker vers un autre lecteur sous Windows

J'essaie d'exécuter ce qui suit script mais dockerd n'est pas reconnu dans mon poste de travail.

Mon système d'exploitation est Windows 10. Il suffit d'installer la dernière version de Docker qui est 18.09.2

C'est ma première fois avec Docker.

9
Miguel

Trouvez autre moyen de le faire basé sur -- Ceci POST.

Pour les conteneurs Unix, le chemin d'accès des images peut être modifié par l'interface Docker Desktop, au formulaire de paramètres. Mais si vous utilisez la fonctionnalité des conteneurs Windows, un deuxième service est installé, le "Moteur Docker". Pour modifier le dossier d'image de ce service, procédez comme suit:

1) Obtenez le chemin du fichier de configuration. Allez aux outils administratifs-> Services. Vérifier la ligne de commande Docker Demon pour le service "Dock Engine"

enter image description here

La ligne de commande est quelque chose comme

"C:\Program Files\Docker\Docker\Ressources\Dockerd.exe" --Run-Service - Service-Name Docker -g MyPC "--Config-File C:\ProgramData\DockerDesktop\TMP-D4W\DAION. json

2) Modifier le fichier de configuration daemon.json et ajoutez la propriété racine de données.Property doit pointer sur l'emplacement souhaité. Devrait regarder quelque chose comme ça. Vérification Ceci Pour plus d'informations sur la structure JSON.

{
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "hosts": [
  "npipe:////./pipe/docker_engine_windows"
  ],
  "data-root":"D:\\Docker\\data-root" 

}

Si nécessaire, donnez des autorisations pour le compte en cours pour accéder au dossier.

3) Redémarrez le service. Si cela ne démarre pas, vérifiez eventlog pour des erreurs éventuelles.

Les données configurées précédentes dans C:\ProgramData\Docker seront perdues lorsque vous modifiez l'emplacement d'installation. C'est comme une nouvelle installation dans un nouvel emplacement. (images, conteneurs, etc.). Tous les sous-dossiers seront créés à nouveau.

Pour garder le minimum sur le lecteur système le faire sur une nouvelle installation.

Je ne suis pas sûr à 100% de cette solution, mais jusqu'à présent, Docker fonctionne bien et que la profession de conduite système est mince.

2
Miguel

Cette réponse est plus une addition à réponse de Jean-François Beauchamp :
[.____] Vous pouvez trouver une documentation complète sur ce fichier de configuration sur Docker's Documentation .

Il est précisé :

--data-root est le chemin où les données persistées telles que des images, des volumes et des états de cluster sont stockées.

et

--exec-root est le chemin où l'état du conteneur est stocké. La valeur par défaut est/var/run/docker. Spécifiez le chemin de votre démon d'exécution ici.

Donc, si vous souhaitez déplacer vos conteneurs et vos images (et les autres choses), vous devez définir ces deux paramètres.

Vous pouvez également créer un lien simple où Docker s'attend à ce que son dossier redirige de la place souhaitée.
[.____], il est décrit ici et conduit au même résultat. Il a l'air "sale" mais à la fin il semble plus stable que la première solution.


Travailler avec le moteur WSL 2 (pour les éditions de la maison et de la famille Windows)

"D:\\Docker\\data-root" Valeur comme suggéré par Miguel changera Docker car il doit s'agir d'un dossier WSL.
Toutefois, Docker crée une distribution WSL spécifique qui contient vos données Docker, et vous pouvez le déplacer . Cela n'a pas besoin de modifier les paramètres Dockerd.

Déplacer la distribution WSL de Docker

 wsl --export docker-desktop-data docker-desktop-data.tar
 wsl --unregister docker-desktop-data
 wsl --import docker-desktop-data X:\wslStore\ docker-desktop-data.tar --version 2

Les X:\wslStore param est le chemin où vous voulez "monter" votre distribution, quelque chose comme D:\Docker\data-root

7
Maskim

Sur Docker v19.03.8 pour Windows, j'ai ajouté le paramètre graph à ma configuration et cela a fonctionné pour moi, mais apparemment, ce paramètre est obsolète et nous devrions maintenant utiliser data-root au lieu. La valeur par défaut pour data-root est c:\programdata\docker. Méfiez-vous que dans le fichier de configuration JSON, les barres anti-backslash doivent être échappées.

enter image description here