Coba dan periksa log buruh pelabuhan untuk melihat apa yang terjadi saat penampung berhenti dan masuk ke mode "Ada".
Lihat juga apakah menentukan jalur lengkap untuk volume akan membantu:
docker run -p 27017:27017 -v /home/<user>/data:/data/db ...
OP menambahkan:
docker logs mongo
exception in initAndListen: 98
Unable to create/open lock file: /data/db/mongod.lock
errno:13 Permission denied
Is a mongod instance already running?
terminating 2016-02-15T06:19:17.638+0000
I CONTROL [initandlisten] dbexit: rc: 100
Errno:13 adalah tentang masalah 30.
Komentar ini menambahkan:
Ini adalah masalah kepemilikan/izin file (tidak terkait dengan gambar buruh pelabuhan ini), baik menggunakan boot2docker dengan VB atau kotak gelandangan dengan VB.
Namun demikian, saya berhasil meretas kepemilikan, memasang ulang /Users shared volume di dalam boot2docker ke uid 999 dan gid 999 (yang digunakan oleh gambar mongo docker) dan memulainya:
$ boot2docker ssh
$ sudo umount /Users
$ sudo mount -t vboxsf -o uid=999,gid=999 Users /Users
Tapi... mongod lumpuh karena jenis sistem file tidak didukung (mmap tidak berfungsi di vboxsf)
Jadi solusi sebenarnya adalah mencoba DVC:Data Volume Container , karena sekarang dokumen mongodb menyebutkan:
MongoDB membutuhkan sistem file yang mendukung
fsync()
pada direktori.
Misalnya, folder bersama HGFS dan Virtual Box tidak mendukung operasi ini.
Jadi:
pemasangan ke OSX tidak akan berfungsi untuk MongoDB karena cara kerja folder bersama virtualbox.
Untuk DVC (Data Volume Container), coba docker volume create
:
docker volume create mongodbdata
Kemudian gunakan sebagai:
docker run -p 27017:27017 -v mongodbdata:/data/db ...
Dan lihat apakah itu bekerja lebih baik.
Seperti yang saya sebutkan di komentar:
docker volume inspect mongodbdata
(lihat docker volume inspect
) akan memberi Anda jalurnya (yang kemudian dapat Anda cadangkan jika perlu)