下面是我输入和输出:
shshenhx@shshenhx:~/Desktop/Docker$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
python latest 336d482502ab 4 days ago 692 MB
shshenhx@shshenhx:~/Desktop/Docker$ docker rmi 336
Untagged: python:latest
Untagged: python@sha256:bf0718e2882cabc144c9c07d758b09c65efc104a6ddc72a9a976f8b26f67c2ee
Deleted: sha256:336d482502ab564b0b2964b2ed037529ba40c7b4ade2117ca11d74edbf11f99e
Deleted: sha256:1e2f72b0bf844de7bfe57a32115b660770355843ef8078fb55629e720147e6a9
Deleted: sha256:b5818ba96f33835318f3e9d7b4094e1007be247f04ab931ea9ef83b45b451f90
Deleted: sha256:0c2d7cafdab1084ebbd0112b3bedf76458ae6809686fb0ad9bae8022f11c3a84
shshenhx@shshenhx:~/Desktop/Docker$ docker pull python
Using default tag: latest
latest: Pulling from library/python
4176fe04cefe: Already exists
851356ecf618: Already exists
6115379c7b49: Already exists
aaf7d781d601: Already exists
40cf661a3cc4: Already exists
975fe2fd635f: Pull complete
bf4db784e7fd: Pull complete
0491f7e9426b: Pull complete
Digest: sha256:bf0718e2882cabc144c9c07d758b09c65efc104a6ddc72a9a976f8b26f67c2ee
Status: Downloaded newer image for python:latest
我的问题是,我已经有了python的图片,为什么它仍然显示已经存在的一些层?我怎样才能完全删除所有的python层。谢谢。
9条答案
按热度按时间yftpprvb1#
对于感兴趣的人:(1)使用命令行;(2)仅移除已经用
docker rmi
移除的图像的高速缓存(即,用docker images --all
不可见),但是对于其高速缓存仍然存在,并且对于其Already exists
在拉取图像时显示层;您可以尝试以下命令:(It运行此命令可能需要15分钟,请耐心等待。)
这个命令似乎为我解决了这个问题。我不想使用通用的“系统范围”
prune
/purge
/ clean docker命令和功能,因为我有一些映像和容器正在运行(与我已经删除的映像无关),我希望它们保持原样。溶液来源:https://forums.docker.com/t/how-to-delete-cache/5753/7
我认为使用
docker rmi
删除的图像的“不可见”缓存层的情况可能是由于使用docker compose的事实而发生的(正如John Doe在他对当前问题的一个答案的评论中所建议的:即使删除所有图像后,Docker pull在pull过程中始终显示图层“已存在”)。dnph8jn42#
请尝试此命令
docker rmi 336d482502ab
,然后再次尝试拉入。66bbxpm53#
对我有帮助的是在删除所有容器和图像后运行
docker-system prune
。所以我让它工作的整个过程是:1.取出所有容器
docker rm -vf $(docker ps -a -q)
1.删除所有图像
docker rmi -f $(docker images -a -q)
1.使用
docker system prune
修剪系统disbfnqx4#
从Docker图像命令的引用
Docker映像具有中间层,通过允许缓存每个步骤来提高可重用性、减少磁盘使用并加快Docker构建速度。默认情况下不显示这些中间层。
可能那些
Already exists
是中间层。默认情况下,当你运行docker images
时,它们是隐藏的,请尝试docker images --all
。jtw3ybtb5#
Docker在Docker Jmeter 板上有一个解决方案,只需按下下面的按钮并按下即可!(这是在故障排除部分。或错误图标)x1c 0d1x
t5fffqht6#
因此,经过大量的搜索,我有一个 * 解决方案 *,虽然我不认为这一定是一个伟大的。
“大锤解决办法”将是:
这基本上是工厂重置Docker,所以你会失去一切。这对我的情况来说很好,但是***在使用这个之前要非常小心,仔细考虑一下。***
wwodge7n7#
有一个docker命令可以删除没有关联运行容器的图像:
docker image prune
允许您清理悬挂图像(悬挂图像未被标记且未被任何容器引用)
docker image prune -a
将删除未被任何现有容器使用的所有图像
docker image prune -a --filter "until=48h"
您可以添加筛选器(--filter)来限制要删除的映像,如本例所示,仅删除超过48小时的映像
您可以添加-f或--force标志来修剪映像,而不提示确认
您可以在计划的bash脚本中使用此命令来保持驱动器整洁
rn0zuynd8#
docker system prune -a
帮了我的忙,它会同时删除未使用和悬空的图像。pb3s4cty9#
你可以使用
docker system prune
,但它会清除docker中的所有内容。这不是图像问题,实际上是缓存问题,所以删除图像不会起作用,因为问题依赖于层缓存。在docker build中有一个--no-cache标志,但我不知道它是否也适用于docker pull。