我想立刻删除所有的docker容器。我尝试使用$ docker rm [container_id]来执行此操作,但它只删除了一个容器,而不是全部。
有没有办法使用一行代码删除所有docker容器?
答案 0 :(得分:7)
根据状态删除容器:
docker rm -v $(docker ps --filter status=exited -q)
注意:
清理开发机器上的所有容器:
docker rm -v -f $(docker ps -qa)
注意:
答案 1 :(得分:2)
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
答案 2 :(得分:2)
对于Windows:
C:\> for /F %i in ('docker ps -qa') do docker rm %i
答案 3 :(得分:2)
适用于Windows(PowerShell):
docker rm -f $(docker ps -a -q)
答案 4 :(得分:1)
sudo docker ps -qa | xargs -n1 sudo docker rm
答案 5 :(得分:1)
从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 versioning matrix可以更好地了解docker版本(当前为Docker 17.12
--- Docker API 1.35
)
答案 6 :(得分:1)
我可以向您展示一个惊人的技巧,它可以帮助您成为更好的 Linux 用户。
输入 docker ps -a | cut -d ' ' -f1 | xargs docker rm
将删除所有容器。首先,您列出所有 docker 容器,然后将所有容器 ID 分开,然后在一行命令中删除所有容器。
答案 7 :(得分:0)
我使用bash脚本循环和docker rm命令执行此操作:
$ for id in $(docker ps -aq); do docker rm $id; done
答案 8 :(得分:0)
杀死活动容器:
for /F %i in ('docker ps') do docker kill %i
删除被动容器:
for /F %i in ('docker ps -qa') do docker rm %i
它适用于Docker 17.xx
答案 9 :(得分:0)
这两个命令如果要删除所有容器或图像
对于容器
sudo docker rm -f $(sudo docker ps -a -q)
用于图像
sudo docker rm -f $(sudo docker images -a -q)
通过使用-f标志,我们可以强制删除容器
答案 10 :(得分:-1)
您可以使用以下行
docker kill $(docker ps -q) || true && docker rm $(docker ps -a -q) || true && docker rmi -f $(docker images -q) || true
如果您使用 jenkins 或 Gitlb CI/CD,如果没有容器或图像,仅运行 docker rm $(docker ps -a -q)
或任何其他相关命令都会失败。使用上面的行,它将被阻止。