无法停止、终止或删除 Docker 容器

Ser*_*pin 7 docker

我现在有一个容器运行了 5 周,我既不能停止也不能杀死也不能删除。docker ps显示这一点(两个容器实际上都不能被移除):

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
431a850b384f        f99983306232        "cmd /c 'start /B C:…"   5 weeks ago         Up 5 weeks          0.0.0.0:80->80/tcp   dockercompose18429431017078490850_xxx_1
e31f0b74a8cb        50eef858d93d        "cmd /c 'start /B C:…"   6 weeks ago         Up 6 weeks          0.0.0.0:80->80/tcp   dockercompose15856640072218908353_xxx_1
Run Code Online (Sandbox Code Playgroud)

docker stop e31然后docker kill e31就挂了,什么都不做。docker rm e31显示错误:

Error response from daemon: removal of container e31 is already in progress
Run Code Online (Sandbox Code Playgroud)

如果我运行,docker inspect e31我会看到容器正在运行,它并没有死:

    "Id": "e31f0b74a8cb8225d5104f8de7e1c583ed1852133ad2870015017b09d3df8dfa",
    "Created": "2019-05-08T06:57:24.3143863Z",
    ...
    "State": {
        "Status": "running",
        "Running": true,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 1324,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "2019-05-08T06:57:30.3396878Z",
        "FinishedAt": "0001-01-01T00:00:00Z"
    },
  ...
Run Code Online (Sandbox Code Playgroud)

如何摆脱它?

系统信息:

  • 服务器版本:19.03.0-rc2

  • 操作系统:Windows 10 专业版 1903(操作系统内部版本 18362.175)

小智 9

我也遇到过几次这种情况。我为阻止“悬挂”容器所做的是-

  1. docker ps 显示容器 ID
  2. net stop docker - 停止 docker 引擎(注意所有容器都会停止)
  3. 删除c:\programdata\docker\containers名称以步骤 1 中的 ID 开头的文件夹
  4. net start docker - 启动码头引擎

不幸的是,docker 服务仍然需要停止和启动,但至少我不必重新安装。


Ath*_*lan 8

对于紧急情况,即使docker rm -fis 也无济于事,可以通过停止 deamon 并手动移除容器来解决:

sudo systemctl stop docker
sudo rm -rf /var/lib/docker/containers/<CONTAINER_ID>
sudo systemctl start docker
Run Code Online (Sandbox Code Playgroud)