LoginSignup
19
25

More than 5 years have passed since last update.

Docker for Windows コマンド豆知識

Posted at

お掃除

Docker for Windowsをインストールしてから色々と試行錯誤を繰り返していると、
いつの間にかDockerコンテナや、Dockerイメージがたまってきます。
Dockerイメージはディスク容量も大きいため、消したくなります。
1個ずつイメージを削除するのも、面倒なので下記のコマンドで一括削除します。

コンテナの一括削除

「docker ps -a」で一覧表示されるDockerコンテナを一括で削除します。

>for /f %T IN ('docker ps -a') DO docker rm %T

イメージの一括削除

「docker images」で一覧表示されるDockerイメージを一括削除します。

for /f %T IN ('docker images --format "{{.ID}}"') DO docker rmi %T

ただし、依存関係のあるイメージは先に依存先のイメージを削除しないと消えない場合があります。。
その場合は上記のコマンドを何度か実行すれば、いずれは全て削除されます。

REPOSITORY名でフィルターをかけてイメージを削除する。

下記はDockerイメージのREPOSITORY名に「name」を含むイメージのみを削除するコマンドです。

for /f %T IN ('docker images --format "{{.ID}} {{.Repository}}" ^| find "name"') DO docker rmi %T

削除を実際に実行するまえに、下記のコマンドにより対象イメージの確認ができます。

for /f %T IN ('docker images --format "{{.ID}}:{{.Repository}}" ^| find "name"') DO echo %T

なお、2つのコマンドで{{.ID}}と{{.Repositry}}の間の区切り文字が「 」(半角空白)と「:」で差異があるので注意が必要です。
「name」の部分は削除したいREPOSITORY名の一部を入力することで、指定した名前のイメージが削除できます。

IN ('コマンド')の実行結果を変数%Tに設定して、DO以降のコマンドを繰り返し実行しますが、%TにはIN ('コマンド')の実行結果の1行ずつの最初の半角空白文字まで設定されます。

IDの指定について

DockerではコンテナIDやイメージIDはコマンド実行時に前方一致で検索されるので注意が必要です。

つまり、

>docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
sukkyxp/vsftp03     latest              ae274714d3f8        16 seconds ago       272MB
sukkyxp/vsftp01     latest              2d706aef6824        About a minute ago   272MB
sukkyxp/vsftp02     latest              2d706aef6824        About a minute ago   272MB
centos              latest              49f7960eb7e4        39 hours ago         200MB

の場合に

>docker rmi 2

を実行するとIMAGE IDの先頭が「2」のイメージが全て削除されます。

19
25
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
19
25