Docker运行久了之后会产生很多container,比如:
需要进行批量删除的操作,如删除image是5926开头的container:
docker container ls -a | awk '{if($2 ~ /^5926/) print $1;}' | xargs docker container rm
或者删除image名字是zkong/esl的container:\为转义标识
docker container ls -a | awk '{if($2 ~ /^zkong\/esl/) print $1;}' | xargs docker container rm
或者删除所有未运行的container:
docker container prune
awk的使用参考:https://awk.readthedocs.io/en/latest/chapter-one.html
image多了也要删除,image删除之前需要把依赖于它的container先行删除:
docker image rm $(docker images | grep '<none>' | awk '{print $3}')
PS:bash中两种参数传递的方式
- | xargs
- $()