MongoDB Docker容器:错误:无法将pid文件写入/tmp/tmp.aLmNg7ilAm:设备上没有剩余空间

时间:2018-01-12 23:46:57

标签: mongodb docker docker-container docker-networking docker-network

我像这样启动了一个MongoDB容器:

docker run -d -p 27017:27017 --net=cdt-net --name cdt-mongo mongo

我看到我的MongoDB容器已退出:

0e35cf68a29c        mongo               "docker-entrypoint.s…"   Less than a second ago   Exited (1) 3 seconds ago                       cdt-mongo

我检查了Docker日志,我看到了:

$ docker logs 0e35cf68a29c
about to fork child process, waiting until server is ready for connections.
forked process: 21
2018-01-12T23:42:03.413+0000 I CONTROL  [main] ***** SERVER RESTARTED *****
2018-01-12T23:42:03.417+0000 I CONTROL  [main] ERROR: Cannot write pid file to /tmp/tmp.aLmNg7ilAm: No space left on device
ERROR: child process failed, exited with error number 1

有谁知道这个错误是关于什么的?容器中没有足够的空间?

2 个答案:

答案 0 :(得分:7)

我不得不删除旧的Docker镜像以释放空间,这是我使用的命令:

# remove all unused / orphaned images
echo -e  "Removing unused images..."
docker rmi -f $(docker images --no-trunc | grep "<none>" | awk "{print \$3}") 2>&1 | cat;
echo -e  "Done removing unused images"

# clean up stuff -> using these instructions https://lebkowski.name/docker-volumes/
echo -e  "Cleaning up old containers..."
docker ps --filter status=dead --filter status=exited -aq | xargs docker rm -v 2>&1 | cat;
echo -e  "Cleaning up old volumes..."
docker volume ls -qf dangling=true | xargs docker volume rm 2>&1 | cat;

答案 1 :(得分:0)

我们最近在将docker-composemongo和其他服务结合使用时遇到了这个问题。有两个修复程序对我们有用。

  1. 清除未使用的东西
# close down all services
docker-compose down

# clear unused docker images
docker system prune

# press y
  1. 增加可供docker使用的映像内存-这取决于您安装的docker。例如,在Mac上,默认值为64Gb,我们通过UI将其翻倍为128Gb。

我们在Windows和Mac上都遇到了这个问题,上面的问题解决了该问题。