Försök att kontrollera docker-loggarna för att se vad som pågick när behållaren stannade och gå till "Existed"-läge.
Se även om det skulle hjälpa att ange den fullständiga sökvägen för volymen:
docker run -p 27017:27017 -v /home/<user>/data:/data/db ...
OP lägger till:
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
Ett errno:13 är vad nummer 30 handlar om.
Denna kommentar lägger till:
Det är ett filägande-/behörighetsproblem (ej relaterat till den här docker-bilden), antingen med boot2docker med VB eller en lösdrivarbox med VB.
Ändå lyckades jag hacka ägandet, återmontera /Users delade volymen inuti boot2docker till uid 999 och gid 999 (vilket är vad mongo docker image använder) och fick det att starta:
$ boot2docker ssh
$ sudo umount /Users
$ sudo mount -t vboxsf -o uid=999,gid=999 Users /Users
Men... mongod kraschar på grund av att filsystemstypen inte stöds (mmap fungerar inte på vboxsf)
Så den faktiska lösningen skulle vara att prova en DVC:Data Volume Container , för just nu nämner mongodb doc:
MongoDB kräver ett filsystem som stöder
fsync()
på kataloger.
Till exempel, HGFS och Virtual Boxs delade mappar stöder inte denna operation.
Så:
monteringen till OSX kommer inte att fungera för MongoDB på grund av hur virtualbox delade mappar fungerar.
För en DVC (Data Volume Container), försök docker volume create
:
docker volume create mongodbdata
Använd det sedan som:
docker run -p 27017:27017 -v mongodbdata:/data/db ...
Och se om det fungerar bättre.
Som jag nämner i kommentarerna:
En docker volume inspect mongodbdata
(se docker volume inspect
) ger dig sin väg (som du sedan kan säkerhetskopiera om du behöver)