如何通过图像名称删除所有的容器,如果已经删除,什么也不做

我有bash脚本停止并通过图像名称删除所有docker的容器。 我可以通过单个命令停止并通过图像名称移除所有docker集装箱

docker rm $(docker stop $( docker ps -a -q --filter ancestor=image_name)) 

但是,如果容器不存在,则此expression式docker ps -a -q --filter ancestor=image_name不会返回任何内容,并且docker ps -a -q --filter ancestor=image_name docker stop命令将失败。 如何删除所有容器的图像名称,如果已经删除,什么也不做?

尝试这个…

 for i in $(docker ps -a -q --filter ancestor=image_name); do docker rm $(docker stop $i); done 

如果docker ps返回结果,它应该只调用docker rm 。 在我的环境中工作。