【问题标题】:Docker : error when delete running containersDocker:删除正在运行的容器时出错
【发布时间】:2018-04-13 14:40:29
【问题描述】:

我正在尝试使用以下命令删除正在运行的容器并删除所有下载的图像:

docker ps -aq | xargs docker rm -f

docker images -aq | xargs docker rmi -f

但我得到了这个

"docker rm" requires at least 1 argument.
See 'docker rm --help'.

Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]

"docker rmi" requires at least 1 argument.
See 'docker rmi --help'.

Usage:  docker rmi [OPTIONS] IMAGE [IMAGE...]

这是我的环境

Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:18 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:40:56 2017
 OS/Arch:      linux/amd64
 Experimental: false
docker-compose version 1.16.1, build 6d1ac21
docker-py version: 2.5.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

这里有什么问题吗?请帮忙! 谢谢

【问题讨论】:

标签: docker docker-compose


【解决方案1】:

你需要先停止运行容器然后删除它们

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

对于图像,请尝试删除悬空图像

docker rmi $(docker images -f dangling=true -q)

要删除所有图像,请使用

docker rmi $(docker images -q)

【讨论】:

    【解决方案2】:

    关注Docker rm doc

    强制删除正在运行的容器

    此命令将强制删除正在运行的容器。

    $ docker rm --force containerName
    containerName
    

    删除所有停止的容器:

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

    对于 Docker 镜像:

    Docker Image doc

    如果您使用 -f 标志并指定图像的短 ID 或长 ID,则 此命令取消标记并删除与指定匹配的所有图像 身份证。

    例子:

    $ docker images
    
    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
    test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
    test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
    test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
    
    $ docker rmi -f fd484f19954f
    
    Untagged: test1:latest
    Untagged: test:latest
    Untagged: test2:latest
    Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
    

    根据我的个人经验,当我需要强制删除容器时,我通常会这样做:

    docker container rm -f containerName
    

    而且,如果我不再需要我使用的图像:

     docker image rm -f imageName
    

    请注意,如果图像仍在被容器使用,上述命令会抛出错误。

    【讨论】:

      【解决方案3】:

      -rxargs一起使用,如果为空则不执行:

      docker ps -aq | xargs -r docker rm -f
      docker images -aq | xargs -r docker rmi -f
      

      【讨论】:

        【解决方案4】:

        看起来您传递参数不正确。 尝试类似的方法来删除所有容器:

        docker rm -f $(docker ps -qa)

        并删除所有图像:

        docker rmi $(docker images -q)

        【讨论】:

          【解决方案5】:

          xargs docker rm -f 很可能不会返回任何内容(您应该尝试运行这个),因此没有参数传递给 docker ps -aq

          PS - 一般来说,建议您稍后尝试运行您将用作参数的表达式,以查看它的计算结果,尤其是在删除之前。

          【讨论】:

            猜你喜欢
            • 2016-10-28
            • 2016-03-17
            • 2020-08-16
            • 1970-01-01
            • 2019-12-04
            • 2016-11-06
            • 1970-01-01
            • 1970-01-01
            • 2018-09-07
            相关资源
            最近更新 更多