web-dev-qa-db-fra.com

Docker ajouter un lecteur réseau en tant que volume sur Windows

J'essaie de monter un lecteur réseau en tant que volume. Ceci est la commande que j'essaie

docker run -v //NetworkDirectory/Folder:/data Alpine ls /data

J'exécute cette commande sur Windows et le répertoire de données arrive vide. Comment puis-je monter ce répertoire réseau en tant que volume sur l'hôte Windows et y accéder à l'intérieur du conteneur?

Travailler avec des répertoires locaux fonctionne très bien, donc la commande suivante fonctionne comme prévu.

docker run -v c:/Users/:/data Alpine ls /data

Je peux le faire fonctionner sous Linux car je peux monter le partage avec cifs-utils sur un répertoire local et utiliser ce répertoire comme volume.

Modifier: Il semble que ce ne soit pas possible: Comment monter le volume réseau dans Docker pour Windows (Windows 10)

11
Salmaan P

Mon collègue a proposé cela et cela fonctionne avec le lecteur réseau de notre entreprise et cela pourrait aider quelqu'un là-bas.

Nous commençons par créer un volume docker nommé mydockervolume.

docker volume create --driver local --opt type=cifs --opt device=//networkdrive-ip/Folder --opt o=user=yourusername,domain=yourdomain,password=yourpassword mydockervolume
  • --driver spécifie le nom du pilote de volume
  • --opt Définit les options spécifiques au pilote. Je suppose qu'ils sont donnés à la commande linux mount lorsque le conteneur démarre.

On peut alors tester que le volume fonctionne avec
docker run -v mydockervolume:/data Alpine ls /data

Ici, vous pouvez en savoir plus sur les options spécifiques au pilote et la création de volume docker

9
Marcus Alsterman

Je n'ai pas trouvé de pilote de stockage CIFS natif sur Docker.

Vous pouvez utiliser un plugin de volume externe comme celui-ci: https://github.com/ContainX/docker-volume-netshare qui prend en charge NFS, AWS EFS & Samba/CIFS

1