我想一次卸下我所有的docker容器。我尝试使用$ docker rm [container_id]做到这一点,但它仅卸下一个容器,而不是全部。
有任何方法可以使用一条代码行删除所有Docker容器?基于状态的示例集装箱:
docker rm -v $(docker ps --filter status=exited -q)
注:
将删除与容器相关的任何卷的“ -v”选项。
docker rm -v -f $(docker ps -qa)
注:
“ -f”选项将迫使拆卸运行的容器
Docker 1.13.0
:
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 17.12
---Docker API 1.35
)
,这两个命令为容器
sudo docker rm -f $(sudo docker ps -a -q)
sudo docker image remove -f $(sudo docker images -a -q)
通过使用-f标志,我们可以强行卸下容器
Windows:
C:\> for /F %i in ('docker ps -qa') do docker rm %i
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
ubuntu
sudo docker ps -qa | xargs -n1 sudo docker rm
docker rm -f $(docker ps -a -q)
我可以向您展示一个惊人的技巧,可以帮助您成为更好的Linux用户。 通过键入
docker ps -a | cut -d ' ' -f1 | xargs docker rm
我使用bash脚本循环和docker rm命令来做:
$ for id in $(docker ps -aq); do docker rm $id; done
for /F %i in ('docker ps') do docker kill %i
docker17.xx
docker ps -aq | xargs docker rm
Here,
docker ps -aq
:列出所有容器ID(运行和停止)。
xargs docker rm
:将这些容器ID作为输入并删除。
如果您还想强制卸下运行容器而无需手动停止它们,请使用:docker ps -aq | xargs docker rm -f
提供更多帮助,结帐Docker Docs,
docker容器rm
您可以使用以下行
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)
或任何其他相关命令,如果没有容器或图像,则会失败。在上面的行中,它将被预防。