gpt4 book ai didi

docker - 如何知道 docker 容器退出的原因?

转载 作者:IT老高 更新时间:2023-10-28 12:33:47 27 4
gpt4 key购买 nike

我有一个 Docker 容器在 1G RAM 的主机上运行(同一主机上还有其他容器运行)。这个 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 杀死您的应用程序,这将是正确的。您可能还想查找退出代码,看看它是否确定了您的应用退出的原因。

注意,这仅表明 docker 本身是否会终止您的进程,并要求您为容器设置内存限制。在 docker 之外,如果主机本身内存不足,Linux 内核可能会终止您的进程。发生这种情况时,Linux 通常会写入/var/log 中的日志。使用 Windows 和 Mac 上的 Docker Desktop,您可以在 docker 设置中调整分配给嵌入式 Linux VM 的内存。

关于docker - 如何知道 docker 容器退出的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38112968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com