删除除了一个之外的所有Docker镜像
我有脚本,停止容器,然后将其删除
docker stop $(docker ps -q) docker rm $(docker ps -a -q)
但我不想删除名为“my_docker”的docker集装箱我怎么能删除除了这一个所有的容器?
你可以试试这个
- 过滤掉不需要的项目(
grep -v
),然后 - 返回包含容器ID的第一列
运行这个命令:
docker rm $(docker ps -a | grep -v "my_docker" | awk '{print $1}')
要使用cut
而不是awk
,试试这个:
docker rm $(docker ps -a | grep -v "my_docker" | cut -d ' ' -f1)
awk
/ cut
用法示例: bash:获取第n列输出的最短path
这是实际发生的事情docker rm $(List of container Ids)
。 所以这只是您如何过滤容器ID列表的问题。
例如:如果你正在寻找删除所有的容器,但只有一个具有特定的容器ID,那么这个docker rm $(docker ps -a -q | grep -v "my_container_id")
将做的伎俩。
我宁愿使用(未经testing的)行来testing容器名称,
docker inspect --format '{{ .Name }}' $(docker ps -aq)
这将给出(运行或不运行)容器的名称,你可以过滤和
docker rm
使用这个信息