如何知道Docker容器退出的原因?
我有一个在1G RAM主机中运行的Docker容器(也有在同一主机中运行的其他容器)。该Docker容器中的应用程序将解码一些图像,这可能会消耗大量内存。
该容器会不时退出。我怀疑这是由于内存不足,但不是很确定。我需要找到根本原因的方法。那么,有什么办法知道这个集装箱的死亡发生了什么?
回答:
其他人提到docker logs $container_id
查看应用程序的输出。这永远是我要检查的第一件事。
接下来,您可以运行docker inspect $container_id
查看状态的详细信息,例如:
"State": { "Status": "exited",
"Running": false,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 0,
"ExitCode": 2,
"Error": "",
"StartedAt": "2016-06-28T21:26:53.477229071Z",
"FinishedAt": "2016-06-28T21:26:53.478066987Z"
},
重要的一行是“
OOMKilled”,如果您超出了容器的内存限制并且Docker终止了您的应用程序,则该行将为true。您可能还需要查找退出代码,以查看其是否标识出您的应用退出的原因。
请注意,这仅表示docker本身是否会杀死您的进程,并要求您在容器上设置内存限制。在Docker外部,如果主机本身的内存不足,Linux内核可以大笑您的进程。发生这种情况时,Linux通常会在/
var / log中写入日志。使用Windows和Mac上的Docker Desktop,您可以在docker设置中调整分配给嵌入式Linux VM的内存。
以上是 如何知道Docker容器退出的原因? 的全部内容, 来源链接: utcz.com/qa/432520.html