我的故事
曾几何时我打电话Docker从 PHP laravel 队列处理数千个媒体文件。我的代码将为我想要完成的每个任务创建一个新容器(例如“处理”、“搜索”、“切片”等)。然后我上床 sleep ,灾难来了。我醒来发现一个 1TB 的日志文件,以及处于不同状态的几十万个容器。
Docker 不再工作了。比如,当我输入 docker version
时(或 docker anything
就此而言)它只是坐在那里凝视。我想避免重新安装,但我无法通过标准 docker rm $(docker ps -a -q)
移除容器因为 Docker 变得非常非常沮丧。
我的问题
$> sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock
INFO[0000] [graphdriver] using prior storage driver "aufs"
(Meanwhile in another terminal)
$> docker version
(insert infinite darkness here)
最佳答案
我做了一些挖掘。
How can I remove docker containers if the docker daemon isn't responding?
/var/lib/docker/containers
中。目录。删除该目录的内容,事情就好多了。这将存在于其他地方,具体取决于您的系统和安装配置。ls /var/lib/docker/containers | xargs -n200 rm -rf
I'm using Docker as a glorified executable being called from code using their API. What extra steps do I need my code take to clean after itself in future?
docker rm $(containername)
完成在代码中,它将完全取决于访问 docker 的方式。我听说你也可以使用 docker run --rm
运行 docker这将在关闭后清理。docker ps -a | awk '{print $1}' | xargs docker rm
I have noticed that when I try to spin up too many (i.e. 20) containers at the same time, Docker was prone to timing out.
https://stackoverflow.com/questions/34191440/