如何知道docker集装箱退出的原因?

我有一个docker容器运行在一个1G RAM的主机(也有其他容器运行在同一主机)。 在这个docker容器中的应用程序将解码一些图像,这可能会消耗大量的内存。

不时,这个容器将退出。 我怀疑这是由于内存不足,但不是很确定。 我需要一个方法来find根本原因。 那么无论如何要知道这个容器的死亡发生了什么?

其他人提到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会杀死你的应用程序。 您可能还想要查看退出代码,以查看是否确定应用程序退出的原因。