简体   繁体   中英

Error running docker container: No space left on device: "/data/db/journal"

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.

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 .

I fixed the error by resizing the disk of docker:

在此处输入图片说明

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM