运行docker container时出错:设备上没有剩余空间:“/ data / db / journal”

时间:2016-09-27 07:11:59

标签: mongodb docker docker-compose

在Mac上运行容器形成docker-compose,这是文件

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"

运行docker -compose up mongo容器失败并退出。这是日志文件:

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

主要抱怨说创建一个目录没有剩余空间,但我无法弄清楚如何解决它。

4 个答案:

答案 0 :(得分:37)

我修复了使用下一个命令清除旧卷的问题:

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

参考: docker-cleanup-volumes

更新:07/13/2018

Docker现在有一个built in command用于移除悬空卷:docker volume prune

答案 1 :(得分:2)

mongo图片的Dockerfile表示/data/db路径正在使用Docker卷:

VOLUME /data/db /data/configdb

如果你跑:

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

这将告诉您Mac上的数据量映射位置。如果它映射到空间不足的驱动器,您可以启动容器指向另一个有空间的位置:

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

或者将其添加到您的撰写文件中:

volumes:
  - <local-path-with-free-space>:/data/db

答案 2 :(得分:0)

在Windows上,我一直在努力解决此问题,并且没有进行任何修剪,删除或清理工作。

我必须使用鲸鱼>设置>重置>“重置为出厂默认值...” 选项,该选项没有最终得以解决。

答案 3 :(得分:0)

我通过调整docker磁盘的大小来修复该错误:

enter image description here