当我运行docker image ls
时,我看到了这个
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> c012c1e2eb45 4 hours ago 2.59GB
<none> <none> a2013debf751 5 hours ago 2.59GB
<none> <none> 0bbb2f67083c 5 hours ago 2.59GB
<none> <none> af18b070061b 29 hours ago 182MB
<none> <none> 186a8fac122e 35 hours ago 1.67GB
<none> <none> 0f90c1bb12a3 35 hours ago 182MB
<none> <none> b94009e70416 13 days ago 631MB
<none> <none> 880d8e6713cf 2 weeks ago 631MB
b/2018-external latest 128d208a6c83 2 weeks ago 207MB
2018-external latest 128d208a6c83 2 weeks ago 207MB
b/2018-web <none> 128d208a6c83 2 weeks ago 207MB
nginx latest 9e7424e5dbae 2 weeks ago 108MB
node 8-alpine 4db2697ce114 4 weeks ago 67.7MB
b_web latest d5a0ea011c0a 5 weeks ago 182MB
<none> <none> 957c22ababec 5 weeks ago 182MB
docker_web latest 70b443ed0495 5 weeks ago 182MB
docker_app latest 509d58a68224 5 weeks ago 756MB
b_app latest 509d58a68224 5 weeks ago 756MB
mysql 5.6 96dc914914f5 5 weeks ago 299MB
mysql latest 5fac85ee2c68 8 weeks ago 408MB
redis latest 1fb7b6c8c0d0 2 months ago 107MB
alpine 3.6 76da55c8019d 2 months ago 3.97MB
nginx 1.13.3-alpine ba60b24dbad5 5 months ago 15.5MB
keymetrics/pm2-docker-alpine 6 4a09bfc067d6 5 months ago 75.3MB
dockercloud/cli latest 051238cd0a37 6 months ago 64.2MB
andrewmclagan/nginx-hhvm latest ec6cc741eb0e 7 months ago 580MB
nginx 1.10 0346349a1a64 8 months ago 182MB
php 7.0.8-fpm 75b880f3a420 17 months ago 375MB
tutum/haproxy latest 33bc771bec1e 18 months ago 232MB
php 7.0.4-fpm 81d7a2fdc6dc 21 months ago 494MB
我如何知道哪些图像可以安全地删除?
我的注意力是把它们都移走,但我不确定在这样做之前我是否应该更小心。
4条答案
按热度按时间flmtquvp1#
您可以使用
docker image prune
来删除“悬空”图像;那些没有标记的(例如<none>
)和不会被任何运行的容器引用。我发现
docker image prune -a
更有用。它将删除任何未被运行容器使用的映像。从这个意义上说,prune -a是一个清理步骤,可以在环境正确运行后执行。hivapdat2#
被称为dangling的图像可以安全地删除。这些图像没有标签。当图像的新构建出现时,新图像会使用标签,而dangling图像则使用
<none>:<none>
标签。悬挂图像可以使用
docker images --filter "dangling=true"
列出,也可以通过运行docker image prune
删除。sy5wg1nm3#
这个命令对我也有用。
ss2ws0br4#
清除所有未使用或挂起的映像、容器、卷和网络:
清理所有悬空(未与容器关联)的资源(映像、容器、卷和网络):
删除所有停止的容器和所有未使用的镜像(不只是悬空镜像):
删除一个或多个特定镜像:
docker rmi Image Image
移除悬空镜像:
docker images purge
按照模式删除图片:
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
删除所有镜像:
docker rmi $(docker images -a -q)
删除一个或多个特定容器:
docker rm ID_or_Name ID_or_Name
退出时删除容器(运行并删除):docker run --rm image_name
移除所有已退出容器:
docker rm $(docker ps -a -f status=exited -q)
使用多个过滤器删除容器:
docker rm $(docker ps -a -f status=exited -f status=created -q)
停止并移除所有容器:
Original article on digitalocean