web-dev-qa-db-fra.com

Erreur lors de l'exécution du conteneur de menu fixe: aucun espace n'est laissé sur le périphérique: "/ data/db/journal"

L'exécution de conteneurs forme docker-compose sur un Mac, c'est le fichier

api:
  build: .
  volumes:
    - .:/src
    - /src/node_modules
  links:
    - mongo
    - redis
  ports:
    - "3015:3015"
    - "5858:5858"
mongo:
  image: mongo:3.3
  ports:
   - "27017:27017"
redis:
  image: redis
  ports:
   - "6379:6379"

L'exécution de docker-compose le conteneur Mongo échoue et se ferme. c'est le fichier de log:

MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit Host=7115a6cce706
db version v3.3.14
git version: 507a5b4d334c1b4bea8fa232fa6b882849608e97
OpenSSL version: OpenSSL 1.0.1t  3 May 2016
allocator: tcmalloc
modules: none
build environment:
    distmod: debian81
    distarch: x86_64
    target_Arch: x86_64
options: {}
 ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
See http://dochub.mongodb.org/core/prodnotes-filesystem
error creating journal dir /data/db/journal boost::filesystem::create_directory: No space left on device: "/data/db/journal"
exception in initAndListen std::exception: boost::filesystem::create_directory: No space left on device: "/data/db/journal", terminating
shutdown: going to close listening sockets...
removing socket file: /tmp/mongodb-27017.sock
shutdown: going to flush diaglog...
now exiting
shutting down with code:100

La plainte principale est qu'il ne reste plus d'espace pour créer un répertoire, mais je ne vois pas comment le réparer.

12
irokhes

J'ai résolu le problème lors du nettoyage des anciens volumes avec la commande suivante:

$ docker volume rm $(docker volume ls -qf dangling=true)

Référence: docker-cleanup-volumes

Mise à jour: 07/13/2018

Docker a maintenant une commande intégrée à pour supprimer les volumes en suspens: docker volume Prune.

33
irokhes

Le Dockerfile de l’image mongo montre que le chemin /data/db utilise un volume Docker:

VOLUME /data/db /data/configdb

Si vous courez:

docker inspect --format '{{ .Mounts }}' <your-container>

Cela vous indiquera où le volume de données est mappé sur votre Mac. S'il s'agit d'un mappage sur un lecteur disposant de peu d'espace, vous pouvez démarrer le conteneur pointant vers un autre emplacement disposant de l'espace:

docker run -d -v <local-path-with-free-space>:/data/db mongo:3.3

Ou ajoutez ceci à votre fichier Compose:

volumes:
  - <local-path-with-free-space>:/data/db
2
Elton Stoneman

J'ai corrigé l'erreur en redimensionnant le disque de docker:

 enter image description here

0
Jeff Tian

Je suis aux prises avec ce problème sous Windows et je n’ai pas eu besoin d’élagage, de suppression ou de nettoyage.

Je devais utiliser l'option Whale> Paramètres> Réinitialiser> "Réinitialiser les paramètres par défaut ..." option, ce que a fait a finalement résolu le problème.

0
Wyck