0
votes

Les volumes de docker ne gardent pas de données

J'ai construit une image Docker avec un script Python qui fonctionne avec deux commandes différentes. Le premier crée un fichier utilisé lors de l'exécution du second.

Autant que je sache, je dois utiliser un volume Docker pour stocker des données entre les exécutions, donc j'ai créé un volume avec: P>

$ docker run predict -v myvol:/data
Error: /data/model.h5 not found


1 commentaires

Essayez quelque chose comme ceci: docker exécuté -v myvol: / data myimg ajustement et similaire pour l'autre commande (notez le placement de l'option -v.)


3 Réponses :


0
votes

Assurez-vous d'utiliser l'argument -v ou --Mount sur la commande Docker Exécuter. Cela s'assurera que les données sont réellement stockées en dehors du conteneur et vous ne perdrez rien. Voir: https://docs.docker.com/storage/volumes/ pour plus de détails.


0 commentaires

3
votes

La ligne de commande Docker est sensible à la commande. La syntaxe est la suivante: xxx pré>


dans votre commande, vous passez l'option -v code> après le nom de l'image, de sorte qu'il devient le cmd code > Valeur dans votre conteneur: P>

$ docker run -v myvol:/data myimg fit 
$ docker run -v myvol:/data predict 


1 commentaires

Oui, l'option -v a été utilisée comme paramètre image! Merci!



0
votes

Lors de l'exécution de ces commandes, vous devez vous rappeler que la première partie de l'option -v est toujours : . Vous pouvez utiliser les chemins de chemin absolus et des chemins relatifs du répertoire de votre machine hôte. Donc, la première chose est de créer un répertoire sur votre hôte appelé Data, de déplacer Model.h5 dans ce répertoire, puis de monter avec le commutateur -V.

Donc si j'avais mon répertoire de données dans C: \ Données sur un répertoire Windows J'utiliserais: xxx

Si j'étais sur UNIX et mon répertoire de données était in / usr / données et je voulais qu'il soit monté sur / données dans mon conteneur invité puis je utiliserait xxx


0 commentaires