我想一次性删除所有Docker容器。我尝试使用$ docker rm [container_id]这个命令,但是它只删除了一个容器,而不是所有的容器。
有没有一种方法可以用一行代码删除所有Docker容器?
有没有一种方法可以用一行代码删除所有Docker容器?
按照状态删除容器:
docker rm -v $(docker ps --filter status=exited -q)
注意:
清除开发机器上的所有容器:
docker rm -v -f $(docker ps -qa)
注意:
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
从 Docker 1.13.0
--- Docker API 1.25
开始:
docker container prune
输出:
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
df226cc24539833a1c88f46bfa382ebe2e89c21805288f5e6bfc37cb7f662505
993bd58faaa22cb5dbc263eca33c8d1a241bd0a1f73b082e23e3a249fe1dfc0d
...
Total reclaimed space: 13.88MB
请查看docker container prune了解更多信息。
有一个docker版本矩阵,以更好地理解docker版本(当前版本为Docker 17.12
--- Docker API 1.35
)。
针对Windows系统:
C:\> for /F %i in ('docker ps -qa') do docker rm %i
对于Windows操作系统(PowerShell):
docker rm -f $(docker ps -a -q)
sudo docker ps -qa | xargs -n1 sudo docker rm
docker ps -a | cut -d ' ' -f1 | xargs docker rm
,所有容器都将被删除。首先,列出所有Docker容器,然后分离所有容器ID,然后在一行命令中全部删除它们。$ for id in $(docker ps -aq); do docker rm $id; done
for /F %i in ('docker ps') do docker kill %i
删除非活动容器:
for /F %i in ('docker ps -qa') do docker rm %i
此命令适用于Docker 17.xx版本。如果您想删除所有容器或镜像,可以使用以下两个命令:
对于容器:
sudo docker rm -f $(sudo docker ps -a -q)
用于图片
sudo docker rm -f $(sudo docker images -a -q)
--filter status=dead
。虽然不经常出现,但有时会出现。此外,建议包括docker rmi $(docker images --dangling=true -q)
来清理不再使用的任何镜像。 - Sobrique