我正在使用领事的健康检查功能,并且我不断收到这些“死”容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
20fd397ba638 progrium/consul:latest "\"/bin/bash -c 'cur 15 minutes ago Dead
什么是“死”容器?停止的容器什么时候会变成“死亡”?
作为记录,我运行 progrium/consul + gliderlabs/registrator images + SERVICE_XXXX_CHECK 环境变量来进行运行状况检查。它运行一个运行状况检查脚本,每 X 秒运行一个图像,类似于docker run --rm my/img healthcheck.sh
我对“死亡”的含义以及如何防止它发生感兴趣。另一个奇怪的事情是我的死容器没有名字。
这是集装箱检查的一些信息:
"State": {
"Dead": true,
"Error": "",
"ExitCode": 1,
"FinishedAt": "2015-05-30T19:00:01.814291614Z",
"OOMKilled": false,
"Paused": false,
"Pid": 0,
"Restarting": false,
"Running": false,
"StartedAt": "2015-05-30T18:59:51.739464262Z"
},
奇怪的是,偶尔会有一个容器死掉并且没有被移除。
谢谢
编辑:
查看日志,我发现是什么导致容器停止失败:
Handler for DELETE /containers/{name:.*} returned error: Cannot destroy container 003876e41429013e46187ebcf6acce1486bc5011435c610bd163b159ba550fbc:
Driver aufs failed to remove root filesystem 003876e41429013e46187ebcf6acce1486bc5011435c610bd163b159ba550fbc:
rename /var/lib/docker/aufs/diff/003876e41429013e46187ebcf6acce1486bc5011435c610bd163b159ba550fbc
/var/lib/docker/aufs/ diff/003876e41429013e46187ebcf6acce1486bc5011435c610bd163b159ba550fbc-removing:
device or resource busy
为什么会出现这种情况?
编辑2:
发现了这个:https://github.com/docker/docker/issues/9665 https://github.com/docker/docker/issues/9665