こんにちは。趣味グラマのNobuです。
Dockerを使っていると、ビルドしたイメージとか、止まっているコンテナとかが溜まってきて、ディスクを沢山使うようになります。
貧乏性な私としては定期的にそれらを削除しているのですが、毎回コマンドを忘れてしまうので備忘録として残しておこうと思います。
削除するコマンドたち
まずは使っていないコンテナを削除する
docker container prune
なぜコンテナからかと言いますと、使っていないイメージを削除する際に、そのイメージを元に起動したコンテナが有るとエラーになってイメージの削除が出来ないからです。
コンテナ自体がstopしていようがエラーになるので、まずはコンテナから削除すると二度手間が省けます。
あと、「prune」って何だろうと思って英和辞書を引いたら、「不要な物を取り除く」という意味があるんですね。果物のプルーンではないようです(笑)
使っていないイメージを削除する
docker image prune
ここで、REPOSITORYやTAGが「<none>」になっているイメージが消えない場合は、以下のコマンドで削除出来ます。
docker rmi $(docker images -f "dangling=true" -q)
$()の中のコマンドで、先程の<none>になっているイメージのIMAGE IDを取得し、それをrmiの引数に渡しているという事ですね。
ちなみに、ここで最初に書いたように削除対象のイメージから起動したコンテナが残っていると
Error response from daemon: conflict: unable to delete 282ca3a68f00 (must be forced) – image is being used by stopped container bd5deb389e65
こんなエラーが出て怒られます。
使っていないボリュームを削除する
docker volume prune
ボリュームにはDBのデータ等を保管していると思いますので、削除する時は気を付けましょう。
私は何も考えず実行してしまって涙目になった事が2回ほどあります…。
まとめ
特にまとめる事もないですが、ディスクは逼迫してきてからだと削除作業が大変になるので、私と同じように貧乏性の方は日々こうやってメンテナンスしていきたいですね\(^o^)/
コメント