如何删除Docker中的图像?

Jul*_*les 805 docker

我在OS X 10.8.4(Mountain Lion)下在Vagrant下运行Docker,每当我尝试删除已保存的图像时,我都会收到错误消息:

$ docker rmi some-image-id
2013/07/15 hh:mm:ss unexpected JSON input
Run Code Online (Sandbox Code Playgroud)

根据rmi帮助,正确的语法是docker rmi IMAGE [IMAGE...],我不知道该怎么做.

如何删除图像?

$ docker version
Client version: 0.4.8
Server version: 0.4.8
Go version: go1.1
Run Code Online (Sandbox Code Playgroud)

 

$docker info
Containers: 1
Images: 3
Run Code Online (Sandbox Code Playgroud)

有趣的是,当我跑步时docker ps,根本没有容器出现.跑步docker images显示四(4)base张图像和一(1)张node图像.

Nic*_*tes 988

试试docker rmi node.这应该工作.

查看所有创建的容器就像这样简单docker ps -a.

要删除所有现有容器(不是图像!),请运行 docker rm $(docker ps -aq)

  • 如果您的某些容器仍在运行,您可以运行:docker stop $(docker ps -qa)来停止所有容器.我认为删除正在运行的容器可能不起作用,至少我记得我遇到过这个问题.我可能错了她...我检查了手册页,它支持我的假设:" - f, - force = true | false强制删除正在运行的容器.默认为false." (10认同)
  • 您知道当需要使用特定于shell的功能来实现基本功能时,命令行选项设计得很糟糕. (4认同)
  • 啊,我不知道“删除所有现有容器”的命令。自己写过: docker ps -a | sed -r 's/^(\w+).*/\1/g' | sed -r 's/^(\w+).*/\1/g' | sed -r 's/^CONTAINER//' | sed -r 's/^CONTAINER//' | sed -r 's/^(\w+)/docker rm \1/g' | sed -r 's/^(\w+)/docker rm \1/g' | awk '系统($0)' 谢谢! (2认同)

Uli*_*ses 552

以下是删除docker镜像/容器的一些方法:

删除单个图像

docker rmi image_name:version/image-id
Run Code Online (Sandbox Code Playgroud)

删除所有图像

docker rmi $(docker images -qf "dangling=true")
Run Code Online (Sandbox Code Playgroud)

杀死容器并将其移除:

docker rm $(docker kill $(docker ps -aq))
Run Code Online (Sandbox Code Playgroud)

注意:更换killstop的正常关闭

删除除"my-image"以外的所有图像

使用grep删除除my-image和之外的所有内容ubuntu

docker rmi $(docker images | grep -v 'ubuntu\|my-image' | awk {'print $3'})
Run Code Online (Sandbox Code Playgroud)

或者(没有awk)

docker rmi $(docker images --quiet | grep -v $(docker images --quiet ubuntu:my-image))

  • 增加:删除"悬空"图像(没有标签的图像):`docker rmi $(docker images -qf"dangling = true") (23认同)
  • shoudl是`docker rm $(docker kill $(docker ps -a -q))` (5认同)

Chr*_*lis 192

删除所有docker容器

docker rm $(docker ps -a -q)
Run Code Online (Sandbox Code Playgroud)

删除所有泊坞窗图像

docker rmi $(docker images -q)
Run Code Online (Sandbox Code Playgroud)

  • 删除未标记的图像:`docker rmi $(docker images | grep"^ <none>"| awk"{print $ 3}") (6认同)

kwe*_*360 67

要使用图像ID从Docker中删除图像:

  1. 获取所有图像的列表

    docker images
    
    Run Code Online (Sandbox Code Playgroud)
  2. 标识要删除的图像的图像ID,例如:

    REPOSITORY     TAG     IMAGE ID        CREATED        VIRTUAL SIZE
    kweku360/java  latest  08d3a9b8e166    2 weeks ago         5.733 GB`
    
    Run Code Online (Sandbox Code Playgroud)
  3. 最后使用图像ID删除图像(仅需要前三位数字)

    docker rmi 08d
    
    Run Code Online (Sandbox Code Playgroud)


小智 36

图片:

  1. 列出图像

    码头图片

  2. 删除一个图像

    docker rmi image_name

  3. 强制删除一个图像

    docker rmi -f image_name

容器:

  1. 列出所有容器

    docker ps -a

  2. 删除一个容器

    docker rm container_id

  3. 强制删除一个容器

    docker rm -f container_id


qkr*_*ger 29

更新,如VonC在如何删除旧Docker容器中所评论.

使用Docker 1.13(2016年第4季度),您现在拥有:

docker system prune 将删除所有未使用的数据(即按顺序:容器停止,没有容器的卷和没有容器的图像).

请参阅PR 26108提交86de7c0,它们引入了一些新命令,以帮助显示Docker守护程序数据在磁盘上占用的空间,并允许轻松清理"不需要的"多余空间.

docker system prune

WARNING! This will remove:
    - all stopped containers
    - all volumes not used by at least one container
    - all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
Run Code Online (Sandbox Code Playgroud)

  • 我同意.但是,由于这个问题的标题非常通用,这有点成为一个参考问题,因此我认为有关机制的更新已经到位. (2认同)

All*_*ітy 23

删除容器

  1. 删除特定容器

    docker rm CONTAINER_ID CONTAINER_ID
    
    Run Code Online (Sandbox Code Playgroud)
  2. 删除已退出的容器

    docker ps -a -f status=exited
    
    Run Code Online (Sandbox Code Playgroud)
  3. 删除所有容器

    docker ps -q -a | xargs docker rm
    
    Run Code Online (Sandbox Code Playgroud)


删除图像

docker rmi IMAGE_ID
Run Code Online (Sandbox Code Playgroud)
  1. 删除特定图像

  2. 删除悬空图像悬空图像
    是与任何标记图像无关的图层,因为Docker图像由多个图像构成.

    docker rmi -f $(docker images -f dangling=true -q)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 删除所有Docker镜像

    docker rmi -f $(docker images -a -q)
    
    Run Code Online (Sandbox Code Playgroud)

删除卷

要列出卷,请运行 docker volume ls

  1. 删除特定卷

    docker volume rm VOLUME_NAME
    
    Run Code Online (Sandbox Code Playgroud)
  2. 删除悬空卷

    docker volume rm $(docker volume ls -f dangling=true -q)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 删除容器及其卷

    docker rm -v CONTAINER_NAME
    
    Run Code Online (Sandbox Code Playgroud)


Kun*_*Xie 19

docker rm container_name

docker rmi image_name

docker help

rm移除一个或多个容器

rmi删除一张或多张图像


lak*_*dan 13

docker rmi  91c95931e552
Run Code Online (Sandbox Code Playgroud)

来自守护进程的错误响应:冲突,无法删除91c95931e552,因为容器76068d66b290正在使用它,使用-f强制FATA [0000]错误:无法删除一个或多个映像

查找容器ID,

# docker ps -a

# docker rm  daf644660736 
Run Code Online (Sandbox Code Playgroud)


Mur*_*kal 5

首先,我们必须停止并删除与我们将要删除的 Docker 映像相关联的 Docker 容器。

所以为此,首先

  • docker stop container-id - 停止正在运行的容器
  • docker rm container-id - 删除/移除容器

然后,

  • docker rmi image-id - 删除/移除图像