在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
主要抱怨说创建一个目录没有剩余空间,但我无法弄清楚如何解决它。
答案 0 :(得分:37)
我修复了使用下一个命令清除旧卷的问题:
$ docker volume rm $(docker volume ls -qf dangling=true)
更新: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)