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

vvppvyoh  于 2023-03-07  发布在  Docker
关注(0)|答案(9)|浏览(172)

我有一个运行了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

docker stop e31docker kill e31刚刚挂起,没有执行任何操作。docker rm e31显示错误:

Error response from daemon: removal of container e31 is already in progress

如果我运行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"
    },
  ...

如何摆脱呢?
系统信息:

  • 服务器版本:19.03.0-rc2
  • 操作系统:Windows 10专业版1903(操作系统内部版本号18362.175)
56lgkhnf

56lgkhnf1#

我也遇到过几次这种情况。我阻止"挂起“集装箱的做法是-

  1. docker ps显示容器ID
  2. net stop docker-停止装卸车引擎(注意所有集装箱将停止)
    1.删除c:\programdata\docker\containers中名称以步骤1中的ID开头的文件夹
  3. net start docker-启动装卸车发动机
    不幸的是,docker服务仍然必须停止和启动,但至少我没有重新安装。
zengzsys

zengzsys2#

对于紧急情况,即使docker rm -f也无济于事时,可以通过停止守护进程并手动删除容器来解决:

sudo systemctl stop docker
sudo rm -rf /var/lib/docker/containers/<CONTAINER_ID>
sudo systemctl start docker
gab6jxml

gab6jxml3#

这听起来可能太激进了,但我刚刚重新安装了Docker。多余的容器终于消失了。

wtzytmuj

wtzytmuj4#

对我们来说,这是一个更新,改变了RHEL上的docker.service配置。

    • 解决方案**
docker rm -f <container-id>
systemctl daemon-reload
systemctl restart containerd
systemctl restart docker
docker-compose up -d
    • 我们收到的错误**
docker-compose up -d --force-recreate
Recreating 952ba6a5bbc4_my-app ... error
t: connection refused: unknown'
​
ERROR: for 952ba6a5bbc4_my-app  Cannot start service my-app: b'dial unix \x00/run/containerd/s/086e56: connect: connection refused: unknown'
​
ERROR: for my-app  Cannot start service my-app: b'dial unix \x00/run/containerd/s/086e56: connect: connection refused: unknown'
ERROR: Encountered errors while bringing up the project.```
p5cysglq

p5cysglq5#

我已经多次遇到同样的问题。Error response from daemon: removal of container docker_container_id_goes_here is already in progress
重新启动您的Docker并在powershell或终端中运行以下命令
docker rm docker_container_id_goes_here

ergxz8rk

ergxz8rk6#

使用docker system prune清洁docker,然后停止或移除容器。

bwleehnv

bwleehnv7#

你可以通过名字杀死一个容器,从OP的输出来看,正确的命令应该是:

docker kill dockercompose15856640072218908353_xxx_1

查看here了解更多信息。给予一试,让我知道它是否有效

x0fgdtte

x0fgdtte8#

对于Mac和Windows用户来说,一个简单的方法是使用Docker桌面。

e1xvtsh3

e1xvtsh39#

那么试试下面的两个命令,首先停止容器,然后删除它,如果他们是从使用Dockerfile创建.

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

对于docker-compose,使用此命令删除附加的容器

docker-compose down

相关问题