我正在使用与 DockerEngine (Docker.DotNet)对话的 C# API来做一些事情,但值得注意的是,在这种情况下,删除了一个停止的容器。这是我的代码:
foreach (var container in RunningContainers)
{
if (container.State == "dead" || container.State == "exited")
{
long exitType = Client.Containers.InspectContainerAsync(container.ID).Result.State.ExitCode;
if (exitType != 0)
{
badExitCodeCount++;
}
Client.Containers.RemoveContainerAsync(container.ID, new ContainerRemoveParameters()).Wait();
}
}
请注意,在这种情况下,RunningContainers
仍包括已停止的容器,并且尚未刷新其状态。
这是错误。API 执行后成功调用 DockerEngine RemoveContainerAsync
,容器从我的本地 Docker 容器中移除。然后在代码继续运行后不久,收到 Docker “没有这样的容器”响应,抛出异常。
关于这里发生了什么的任何想法?