■ はじめに
小ネタ。 Docker をTry&Errorで使っていくと、 ゴミが溜まってえらいことになってきたので、 クリーンアップ方法を調べてみた。
目次
【1】docker prune 【2】オプションコマンド 1)-a, --all 2)--filter 3)-f, --force 【3】コマンド 1)docker system prune 2)docker image prune 3)docker container prune 4)docker volume prune 5)docker network prune
【1】docker prune
* 使用していない Docker オブジェクトを削除する
https://docs.docker.jp/config/pruning.html
cf. prune (プルーン) = 切り取る, 刈り取る, 〔不要なもの・余分なものを〕取り除く, 削る 〔費用を〕切り詰める
【2】オプションコマンド
事故を起こさないように、まずは、prune コマンドの前に オプションについて学んでおく
1)-a, --all
* 既存コンテナから利用されていないイメージをすべて削除する
2)--filter
* フィルタする値を指定(例: until=<timestamp> )
例
# 生成されてから 24 時間以上経過したイメージを対象とする場合 docker image prune -a --filter "until=24h"
3)-f, --force
* デフォルトだと、以下「メッセージ例」のように、削除していいかどうか確認があるが その確認をオフにすることができる
メッセージ例
WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? [y/N]
【3】コマンド
* Dockerコンポーネント(4種類;image/container/volume/network) およびまとめて削除することができる
https://docs.docker.jp/config/pruning.html
1)docker system prune
* 未使用Dockerコンポーネントをまとめて削除
https://matsuand.github.io/docs.docker.jp.onthefly/engine/reference/commandline/system_prune/
コマンド例
docker system prune # -a(--all): タグづけなし、参照なしを問わず、未使用のイメージをすべて削除 # -f(--force): 確認のためのプロンプトを表示せず # --volumes: ボリュームを削除 docker system prune -a -f --volumes
2)docker image prune
* Dockerコンポーネント「image」を削除
https://docs.docker.jp/engine/reference/commandline/image_prune.html
https://matsuand.github.io/docs.docker.jp.onthefly/engine/reference/commandline/image_prune/
コマンド例
docker image prune # -a(--all): タグづけなし、参照なしを問わず、未使用のイメージをすべて削除 docker image prune -a # -f(--force): 確認のためのプロンプトを表示せず # --filter: フィルター。(たとえば 'until=<timestamp>') docker image prune -a --force --filter "until=2017-01-04T00:00:00"
3)docker container prune
* Dockerコンポーネント「container」を削除
https://docs.docker.jp/engine/reference/commandline/container_prune.html
コマンド例
docker container prune
4)docker volume prune
* Dockerコンポーネント「volume」を削除
https://docs.docker.jp/engine/reference/commandline/volume_prune.html
コマンド例
docker volume prune
5)docker network prune
* Dockerコンポーネント「network」を削除
https://docs.docker.jp/engine/reference/commandline/network_prune.html
コマンド例
docker network prune
関連記事
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/25/000000
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
Docker compose ~ Version 2 ~
https://dk521123.hatenablog.com/entry/2023/01/02/000000