我有腳本,停止容器中,然後將其刪除刪除所有碼頭工人的圖像,除了一個
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