docker 周りで頻繁には使わないかもしれないが、
それゆえに覚えてなくて毎回調べるやつ
コンテナの残骸を消したい
1時間以内に作ったコンテナ全部消す
直近間違えて作ったゴミ(container)を消す方法
注) "minute" でgrepしてるので、imageとかtagの名前にminute が入っていたらバグる
docker ps -a | grep Exited | grep minute | awk '{print $1}' | xargs docker rm
docker の filter
オプションを活用すると多分こんな感じ
docker ps -a --filter "status=exited" | grep minute | awk '{print $1}' | xargs docker rm
since
オプションもあるが、これはImage IDを受け取るのでちょっとめんどい。正確にやりたければめんどさを考えてもImage ID 指定の方が良い。
ある時点より昔に作ったコンテナを全て消す
まずはどんなコンテナがあるかを確認する
docker ps -a --filter "status=exited" --format 'table {{.Image}}\t{{.CreatedAt}}\t{{.Status}}'
docker container prune --filter "until=2022-10-07T09:10:00"
ある時点以前に作られたコンテナを消す(Exitした時刻ではなく、コンテナの作られた時刻)
docker image の出力が横に長い
ID は文字数一定だけどその他はまちまちなので整形する余地はあるが、事足りてる
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"