3
votes

Docker-compose: erreur lors de la tentative d'exécuter l'image mongo

J'essaie d'exécuter une image en utilisant mongo-compose.

Le fichier de composition est celui-ci:

exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating

Après l'exécution

docker-compose -p DropDesk up -d db

J'obtiens un message "terminé", mais le conteneur n'est pas en cours d'exécution. En vérifiant les journaux du conteneur, je vois ce message:

version: '2'
services:
  db:
    image: mongo:3.4.10
    volumes:
      - ./data/mongodb:/data/db

De plus, si je supprime le mappage de volume du fichier de composition, le conteneur fonctionne sans problème.

J'utilise Centos 7 (Kernel 5), j'ai désactivé selinux, j'utilise le moteur Docker 18.09).

Quelqu'un sait pourquoi cela pourrait-il se produire? J'ai passé quelques heures sans résultat.


1 commentaires

mongo est très pointilleux avec les fichiers, avez-vous essayé de supprimer le dossier local ./data/mongodb et d'en utiliser un nouveau? pour moi ça marche plutôt bien


3 Réponses :


1
votes

remplacez votre fichier docker-compose.yml par:

version: '2'
services:
    db:
        image: mongo:3.4.10
        command: mongod --dbpath /data/db
        volumes:
            - ./data/mongodb:/data/db


0 commentaires

0
votes

Modifiez les autorisations du répertoire ./data/mongodb afin que l'utilisateur du docker puisse écrire dans le répertoire.


0 commentaires

1
votes

Ce problème est lié à de mauvaises autorisations.

Assurez-vous que votre point de terminaison de volume ./data du fichier docker-compose.yml se trouve sur un système de fichiers pris en charge par un autre groupe d'utilisateurs. Placer le dossier sur une partition formatée NTFS entraînera l'erreur mentionnée ci-dessus (le déplacer vers Ext4 résoudra ce problème).


0 commentaires