Docker秘籍
介绍
Docker使您可以轻松地将应用程序和服务包装在容器中,以便您可以在任何位置运行它们。但是,在使用Docker时,也很容易累积大量未使用的映像,容器和数据卷,使输出混乱并占用磁盘空间。 Docker不提供直接清理命令,但它提供了从命令行清理系统所需的所有工具。这个Cheat的表格式指南提供了一个快速参考,可用于释放磁盘空间,并通过删除未使用的Docker镜像,容器和卷来保持系统整理。
如何使用本指南:
- 本指南是以自带的命令行片段的备忘单格式
- 跳转到与您要完成的任务相关的任何部分。
该命令替换语法,
command $( command )
,在命令中使用是在许多流行的炮弹如bash中,zsh中,和Windows PowerShell中可用。
删除Docker镜像
删除一个或多个特定镜像
使用
docker images
命令和
-a
标志,找到要删除的镜像的ID。 这将显示每个镜像,包括中间镜像层。 当你位于你要删除的镜像,可以通过他们的ID或标签
docker rmi
:
列表:
docker images -a
去掉:
docker rmi Image Image
删除Docker镜像
Docker镜像由多层组成。Docker镜像是与任何标记镜像没有关系的图层。它们不再服务于目的并消耗磁盘空间。他们可以通过添加过滤器标志,位于
-f
,值为
dangling=true
到
docker images
命令。 当你确定要删除它们,您可以添加
-q
标志,那么通过他们的ID来
docker rmi
:
注:如果您构建一个镜像而不标注它,会出现镜像晃来晃去的镜像,因为它有一个标记的镜像没有关联的名单上。您可以通过避免这种情况提供了一个标签 ,当你建立,并且可以追溯标签的一个镜像Docker标记命令。
列表:
docker images -f dangling=true
去掉:
docker rmi $(docker images -f dangling=true -q)
根据模式删除镜像
你可以找到所有使用相匹配的组合图案镜像
docker images
和
grep
。 一旦你满意,你可以通过删除
awk
传递ID,以
docker rmi
。注意,这些实用程序不是由Docker提供的,并且不一定在所有系统上都可用:
列表:
docker ps -a | grep "pattern"
去掉:
docker images | grep "pattern" | awk '{print $1}' | xargs docker rm
删除所有镜像
所有系统上的镜像Docker窗可以通过增加上市
-a
到
docker images
命令。 一旦你确定要删除它们,你可以添加
-q
标志传递图片ID来
docker rmi
:
列表:
docker images -a
去掉:
docker rmi $(docker images -a -q)
删除容器
删除一个或多个特定容器
使用
docker ps
命令和
-a
标志来查找名称,或者你要删除的货柜ID:
列表:
docker ps -a
去掉:
docker rm ID_or_Name ID_or_Name
退出时移除容器
如果你知道,当你创建你不会想围绕保持它一旦你完成一个容器,可以运行
docker run --rm
退出时自动删除。
运行和删除:
docker run --rm image_name
删除所有已退出的容器
您可以使用定位容器
docker ps -a
,并通过他们的状态进行筛选:创建,重新启动,运行,暂停或退出。 要查看退出容器的列表,请使用
-f
标志的基础上筛选状态。 当您确认要删除这些容器,使用
-q
传递的ID给
docker rm
命令。
列表:
docker ps -a -f status=exited
去掉:
docker rm $(docker ps -a -f status=exited -q)
使用多个过滤器删除容器
可以通过使用附加值重复过滤器标志来组合Docker过滤器。这将生成满足任一条件的容器列表。例如,如果你想删除标记为
创建的所有容器(这可能会导致一个国家在运行带有无效命令的容器)或
退出时,可以使用两个过滤器:
列表:
docker ps -a -f status=exited -f status=created
去掉:
docker rm $(docker ps -a -f status=exited -f status=created)
根据模式删除容器
你可以找到所有使用相匹配的组合模式,该容器
docker ps
和
grep 。 当你确信你有你想删除列表中,您可以使用
awk
和
xargs
供应ID来
docker rmi
。请注意,这些实用程序不是由Docker提供,并且不一定在所有系统上可用:
列表:
docker ps -a | grep "pattern”
去掉:
docker ps -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
停止并取出所有容器
您可以查看您的系统与容器
docker ps
。 添加
-a
标志将显示所有容器。 当你确定要删除它们,您可以添加
-q
标志提供的ID的
docker stop
和
docker rm
命令:
列表:
docker ps -a
去掉:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
删除卷
删除一个或多个特定卷 - Docker 1.9及更高版本
使用
docker volume ls
命令来找到您要删除的卷名称或名称。 然后你就可以删除与一个或多个卷
docker volume rm
命令:
列表:
docker volume ls
去掉:
docker volume rm volume_name volume_name
删除卷 - Docker 1.9和更高版本
由于卷的点是独立于容器存在的,当容器被移除时,卷不会同时被自动移除。当卷存在并且不再连接到任何容器时,它被称为卷。要找到他们确认要删除它们,您可以使用
docker volume ls
命令过滤器,以将结果限制卷。 当你满意的列表,你可以添加
-q
标志来提供卷名
docker volume rm
:
列表:
docker volume ls -f dangling=true
去掉:
docker volume rm $(docker volume ls -f dangling=true -q)
删除容器及其卷
如果你创建了一个不愿透露姓名的体积,它可以在同一时间与容器中删除
-v
标志。 请注意,这仅与
无名卷的作品。成功删除容器后,将显示其ID。注意,没有参考体积的移除。如果它未命名,它将被静默地从系统中删除。如果它被命名,它静静地存在。
去掉:
docker rm -v container_name
结论
本指南介绍了自Docker 1.9以来用于删除镜像,容器和卷的一些常用命令。有许多其他组合和标志,可以与每个使用。对于一个全面的指南,有什么用,请参阅Docker文档
docker rmi
,
docker rm
和
docker volume rm
。如果您希望在指南中看到常见的清理任务,请在评论中提出问题或提出建议。