2017-10-02 17 views
0

Avant de continuer, cette installation fonctionne complètement sur mon OSX. Maintenant, j'en ai besoin aussi sur une machine Windows 10. Encore une fois, tout fonctionne, sauf une chose.Windows/Docker/External Mount

Lors de la désactivation de tout avec docker-compose down, le contenu MongoDb est effacé.

Comme je l'ai découvert, une solution qui pourrait fonctionner est de créer un volume externe. Ce que j'ai fait, avec docker volume create mongodbdata. Et ça n'a pas marché.

Ceci est mon docker-compose.yaml:

version: '2' 
    volumes: 
     mongodbdata: 
      external: true 

    services: 
     nginx: 
      image: 'nginx:alpine' 
      ports: 
       - '8000:80' 
      volumes: 
       - './:/app' 
       - './docker-nginx.conf:/etc/nginx/conf.d/default.conf' 
     mongodb: 
      image: mongo 
      volumes: 
       - 'mongodbdata:/data' 
      ports: 
       - '8001:27017' 
      command: mongod --smallfiles --logpath=/dev/null 

J'ai essayé de supprimer externe: vrai dans l'espoir, il travaillera avec un volume local, et pas de chance là-bas. J'ai essayé de mettre la version '3' juste au cas, pas de chance. La chose drôle, pendant que je googling ceci, j'ai réussi d'une manière ou d'une autre à le faire. Alors j'ai tout arrêté avec le docker-compose et j'ai tout ramené, et d'une certaine manière les données étaient là. Donc ça a l'air, ça peut marcher, mais je peux faire quelque chose de mal.

J'ai essayé toutes sortes de combinaisons, et j'ai même réussi à réussir quelques fois, mais je n'arrivais pas à comprendre comment j'ai réussi ou en d'autres termes je n'ai pas trouvé le motif.

Je serais reconnaissant si quelqu'un pouvait partager quelques connaissances.

Si j'ai manqué des informations, s'il vous plaît faites le moi savoir.

Merci beaucoup!

La version docker BTW est la dernière, mise à jour juste todat!

Répondre

0

Vous aurez besoin quelque chose comme suit:

mongodb: 
     image: mongo 
     volumes_from: 
     - mongodbdata 
     ports: 
     - '8001:27017' 
     command: mongod --smallfiles --logpath=/dev/null 
    mongodbdata: 
    image: busybox 
    volumes: 
     - .:/data 
+0

Merci pour votre réponse homme, j'espérais que cela pourrait fonctionner mais il n'a pas fonctionné. En fait, cela n'avait rien à voir avec les volumes et docker, mais avec le montage. Vérifiez ma réponse ci-dessous. – Adrian

0

En fin de compte, cela n'a rien à voir avec docker et les volumes, le problème était dans le fichier docker-Compose.

mongodb: 
    image: mongo 
    volumes: 
     - 'mongodbdata:/data' 
    ports: 
     - '8001:27017' 
    command: mongod --smallfiles --logpath=/dev/null 

Plus précisément, cette section ici:

volumes: 
     - 'mongodbdata:/data' 

Nous avons adopté ce à

volumes: 
     - 'mongodbdata:/data/db' 

et tout à coup toutes les œuvres.

Je ne sais pas ce qui se passe sous le capot ...