当我尝试使用交互式终端运行任何 Docker 容器时,出现以下错误:
$ docker run -it --rm my-container
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: open /dev/ptmx: no space left on device: unknown.
我当前驱动器和安装 Docker 的驱动器上仍有足够的可用空间。到目前为止,我发现的有关此问题的唯一参考资料是在此论坛帖子中,提示伪终端数量超过阈值。我在我的系统上测试了这个:
$ ls /dev/pts | wc -l
756
$ sysctl kernel.pty.max
kernel.pty.max = 4096
我发现伪终端的数量仍然远低于最大值。删除退出的容器也docker system prune
无济于事。之后docker system prune
,文件数量/dev/pts
下降到 751,但问题仍然存在。
问题是什么?如何解决?
- Docker 版本:20.10.17,内部版本 100c701
- 系统:Ubuntu 20.04
增加伪终端的最大数量sudo sysctl -w kernel.pty.max=8192
确实可以缓解这个问题,但我认为这只会让问题进一步恶化。难道没有更可持续的解决方案来解决这个问题吗?