举个例子 , 将之前创建的envyubuntu:latest镜像给删除 , 相应的命令如下:
[envythink@localhost ~]$ docker image rm envyubuntu:latestUntagged: envyubuntu:latest
请注意我们删除上述envyubuntu:latest镜像的时候 , 本地的ubuntu:latest镜像是不受到任何影响的 。当某一个镜像拥有多个标签的时候 , 此时执行docker image rm或者是docker rmi命令的时候 , 只是删除了该镜像多个标签中的指定标签而已 , 并不影响镜像文件 , 也就是仅仅删除了这个镜像的一个标签副本而已 。
此时开发者可以确认一下 , 本地的ubuntu:latest镜像依旧也是存在的:
[envythink@localhost ~]$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEubuntu latest 9140108b62dc 9 hours ago 72.9MBhaproxy latest 4e531c2cb889 5 months ago 92.4MBpxc latest a6a51beefff1 9 months ago 494MBpercona/percona-xtradb-cluster latest a6a51beefff1 9 months ago 494MB
但是需要注意 , 如果这个镜像只剩下一个标签 , 那么此时执行docker image rm或者是docker rmi命令的时候就会删除这个镜像文件的所有文件层 。
使用镜像ID来删除镜像前面说过当使用docker image rm或者是docker rmi命令的时候 , 其后面也是可以接镜像的ID(也可以是能进行区分的部分ID串前缀) , 此时会先尝试删除所有指向该镜像的标签 , 然后删除该镜像文件本身 。因为多个标签指向的都是同一个镜像ID , 所以最终肯定会删除该镜像本身 。
但是需要注意 , 当有该镜像创建的容器存在时 , 镜像文件默认是无法被删除的 。
举个例子 , 可以使用之前的ubuntu:latest镜像来创建一个简单的容器 , 并输出一句话:
[envythink@localhost ~]$ docker run ubuntu:latest echo "hello,I am envy"hello,I am envy
接着使用docker ps -a命令来查看本机上存在的所有容器:
[envythink@localhost ~]$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESfd56a307081b ubuntu:latest "echo 'hello,I am en…" 24 seconds ago Exited (0) 23 seconds ago nostalgic_lewin
可以看到这个容器就是基于前面的ubuntu:latest镜像而创建出来的 , 不过它的状态是退出而已 。但是开发者是无法删除该ubuntu:latest镜像的 , Docker会提示有容器正在运行 , 无法删除 , 如下所示:
推荐阅读
- docker安装rabbitmq延时队列插件
- docker安装nacos
- 购物党比价工具如何使用
- 冰裂茶具怎么开壶,新紫砂茶具怎么使用
- CentOS7下使用开源安全审计工具Lynis
- 如何根据使用用途选择手电筒的类型
- 冰箱里的补偿开关如何使用 冬天冰箱的补偿开关要调到哪里才最合适
- 使用命令行浏览器在 Linux 终端上网浏览
- 你不知道的微信公众号编辑器的使用小妙招
- 胰岛素针头重复使用的危害有哪些 胰岛素针头可以用几次