3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Docker] 特定のコンテナに紐づくボリュームのみ削除

Last updated at Posted at 2020-10-09

特定のvolumeだけ削除したい

$ docker volume prune だと未使用のvolume全て削除してしまうし、 $ docker volume lsを見ても、どのvolumeが消したいコンテナのやつかわからない

削除したいvolumeをもつコンテナ名をセット

$ CONTAINER_NAME=hoge

コンテナ名が分からないとき

$ docker ps
CONTAINER ID        IMAGE           COMMAND                  CREATED             STATUS              PORTS                    NAMES
1fd9075c0f5d       my_project_app   "docker-entrypoint.s…"   59 minutes ago      Up 59 minutes       0.0.0.0:8080->8080/tcp   app

最後列のNAMESの値がコンテナ名

ワンライナー削除コマンド

$ docker inspect $(docker ps -f name=${CONTAINER_NAME} -q) | jq -r '.[].Mounts[] | select(.Type == "volume").Name' | xargs docker volume rm

概要

  • コンテナ名からコンテナIDを取得
  • docker inspectjq の組み合わせでvolume nameを取得
  • docker volume rm {volume name} で削除

jq がない場合は要インストール

もっとシンプルなケース

コンテナの削除と同時にvolumeも削除したいケースなら

docker-compose down -v $CONTAINER_NAME

docker-composeを使ってるとき限定だが、こちらのほうが簡単

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?