无法从Docker Desktop中删除Docker容器

14

我正在尝试在Docker桌面应用程序中删除一个容器。(v3.6.0 Mac)

无法删除Docker Compose应用程序。原因:调用远程方法“compose-action”时出错:错误:命令失败:docker-compose --file "docker-compose.yaml" --project-name "tos-apps" --project-directory "/Users/kunalojha/Desktop/tos-apps" down time="2021-08-22T18:40:00-05:00" level=warning msg="The "UID" variable is not set. Defaulting to a blank string." time="2021-08-22T18:40:00-05:00" level=warning msg="The "UID" variable is not set. Defaulting to a blank string." services.redis.user必须是字符串

每当我尝试关闭它时,似乎会抛出这个消息。我看到了一个关于这个问题的Github issue,但在新版本发布后被关闭,但我仍然遇到相同的问题。你有什么解决办法吗?

5个回答

22

这是我解决类似问题的方法:

使用docker ps命令找到容器ID,docker ps -a会显示所有容器,docker ps -l会显示最近创建的容器。

然后逐个删除应用程序的所有容器,例如:docker rm c52b93c43544


17
解决方案是通过终端逐个移除它们的容器ID来删除项目:
  1. 使用以下命令查找容器ID:

    docker ps -a
    
  2. 通过容器的id删除容器。

  3. docker rm <container-id>
    

2
在此答案中,将分享两个潜在的解决方案,具体取决于一个人的目标:
  1. 删除每个容器

  2. 仅删除一个容器

在我的示例中,我将使用 Windows 上的 WSL 终端。但是在其他环境中,方法应该类似。


选项1

如果目标是删除所有容器,则首先使用 docker stop 命令停止所有容器

docker stop $(docker ps -a -q)

然后使用docker rm命令将它们删除。

docker rm $(docker ps -a -q)

根据个人的目标,可以使用修剪。请参见下面的第一个注释。

有关删除所有图像和卷的方法,请参见最后两个注释。


选项2

如果目标是删除一个特定的容器,请先使用以下命令列出系统中所有的Docker容器:

docker ps -a

[Out]:

CONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS                     PORTS     NAMES
5d5e5c233f5e   nginx              "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes               80/tcp    web-server
6f53b6c2a953   mysql:latest       "docker-entrypoint.s…"   20 hours ago    Exited (137) 20 hours ago            mysql-server
35c37fbf1041   redis              "docker-entrypoint.s…"   2 weeks ago     Exited (0) 2 weeks ago              redis-server

或者

docker ps -aq

[Out]:

5d5e5c233f5e
6f53b6c2a953
35c37fbf1041

如果目标是删除等于 5d5e5c233f5eCONTAINER ID,请从使用 stop 命令停止它。
docker stop 5d5e5c233f5e

最后,使用rm命令移除容器。

docker rm 5d5e5c233f5e

注意事项:

  • Docker在清理未使用的对象(通常称为“垃圾回收”)时采取保守的方法,例如镜像、容器、卷和网络:除非您明确要求Docker这样做,否则通常不会删除这些对象。这可能会导致Docker使用额外的磁盘空间。对于每种类型的对象,Docker都提供了一个修剪命令。

    阅读更多关于修剪的内容

  • 最受欢迎的答案引导我进入了一个

    来自守护程序的错误响应:您无法删除正在运行的容器...在尝试删除或强制删除之前,请停止容器

    错误已经说得很清楚了。在删除容器之前,需要先停止它。

  • 此外,还可以使用{{link3:docker rmi}}删除所有镜像

    docker rmi $(docker images -q)
    
  • 并使用{{link4:docker volume prune}}删除未使用的所有卷

    docker volume prune
    

0

实际上,您可以从Docker桌面版中删除主容器。

转到“容器” -> “查看详细信息”(或仅展开容器),然后逐个删除其中的容器。


-4
你可以尝试在cmd.exe中删除容器或容器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接