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.
3 Réponses :
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
Modifiez les autorisations du répertoire ./data/mongodb
afin que l'utilisateur du docker puisse écrire dans le répertoire.
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).
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