我有脚本,停止容器中,然后将其删除删除所有码头工人的图像,除了一个
docker stop $(docker ps -q)
docker rm $(docker ps -a -q)
但我不想名称为“my_docker” 删除泊坞窗容器如何删除所有容器除本一?
我有脚本,停止容器中,然后将其删除删除所有码头工人的图像,除了一个
docker stop $(docker ps -q)
docker rm $(docker ps -a -q)
但我不想名称为“my_docker” 删除泊坞窗容器如何删除所有容器除本一?
你可以试试这个,这将
grep -v
),然后运行此命令:
docker rm $(docker ps -a | grep -v "my_docker" | awk '{print $1}')
要使用cut
而不是awk
,试试这个:bash: shortest way to get n-th column of output
这是实际发生docker rm $(List of container Ids)
:
awk
/
cut
使用这里
docker rm $(docker ps -a | grep -v "my_docker" | cut -d ' ' -f1)
例子。所以这只是您如何过滤容器ID列表的问题。
例如:如果您想要删除所有容器,但只有一个具有特定容器ID,那么此docker rm $(docker ps -a -q | grep -v "my_container_id")
将执行此操作。
我宁愿使用沿(未经测试)线的东西
docker inspect --format '{{ .Name }}' $(docker ps -aq)
这会给(运行或不)容器的名字来测试容器名称,可以过滤和
docker rm
使用该信息
的questio的标题n要求图片,不是集装箱。对于那些跨越了这个问题寻找绊脚石删除除一个所有图像,你可以使用码头工人修剪带过滤器的标志位:
docker image prune -a --force --filter "label!=image_name"
与图像的名称替换IMAGE_NAME。
您还可以使用“until =”标志按日期修剪图像。
老问题,但我喜欢振兴帖子。
对于这样的情况下,你可以使用Spotify的码头工人GC:https://github.com/spotify/docker-gc#excluding-containers-from-garbage-collection
你可以这样做:
echo "my_docker" >> /tmp/docker-gc-exclude-containers
echo '*' > /tmp/docker-gc-exclude
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro -v /tmp/docker-gc-exclude-containers:/etc/docker-gc-exclude-containers:ro -v /tmp/docker-gc-exclude:/etc/docker-gc-exclude:ro spotify/docker-gc
(如果你想获得您的图像清洗掉也可避免安装docker-gc-exclude
文件)
这不起作用,因为'docker ps -a -q'不打印容器名称,这意味着您不能使用'grep -v'将其过滤掉。 – nwinkler