【Docker】Docker ~ クリーンアップ / prune ~

■ はじめに

小ネタ。

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