37

Running containers form docker-compose on a Mac, this is the file

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"

Running docker-compose up the mongo container fails and exit. this is the log file:

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

The main complain it's about no space left for creating a dir but I can't figured out how to fix it.

irokhes
  • 1,643
  • 1
  • 14
  • 20

4 Answers4

95

I fixed the problem cleaning the old volumes with the next command:

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

Reference: docker-cleanup-volumes

Update: 07/13/2018

Docker now has a built in command for removing dangling volumes: docker volume prune.

Don
  • 506
  • 2
  • 8
  • 23
irokhes
  • 1,643
  • 1
  • 14
  • 20
14

I fixed the error by resizing the disk of docker:

enter image description here

Jeff Tian
  • 5,210
  • 3
  • 51
  • 71
2

The Dockerfile for the mongo image shows that the /data/db path is using a Docker volume:

VOLUME /data/db /data/configdb

If you run:

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

That will tell you where the data volume is being mapped on your Mac. If it's mapping to a drive which is low on space, you can start the container pointing to another location which does have space:

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

Or add this to your Compose file:

volumes:
  - <local-path-with-free-space>:/data/db
Elton Stoneman
  • 17,906
  • 5
  • 47
  • 44
1

I've been struggling with this problem on Windows and no amount of pruning, deleting, or cleaning up helped.

I had to use the Whale > Settings > Reset > "Reset to factory defaults..." option, which did ultimately fix it.

Wyck
  • 10,311
  • 6
  • 39
  • 60
  • Sadly, I have no idea what caused the problem in the first place. I'm paranoid that it's a bug/leak in docker itself. – Wyck Sep 11 '18 at 20:50