root@server:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 5e2dfc857e73 5 days ago 261.6 MB
<none> <none> d053e988f23d 5 days ago 261.6 MB
<none> <none> 1d5d4a2d89eb 5 days ago 261.6 MB
<none> <none> ea0d189fdb19 5 days ago 100.5 MB
<none> <none> 26c6175962b3 5 days ago 100.5 MB
<none> <none> 73d5cec4a0b3 5 days ago 100.5 MB
<none> <none> e19590e1bac1 5 days ago 100.5 MB
私は次のことを試しました:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
そして次のとおりです。
docker rmi $(docker images -f "dangling=true" -q)
次のエラーが発生します:
docker: "rmi" requires a minimum of 1 argument.
See 'docker rmi --help'.
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
ベストアンサー1
タグが付いていない画像(ラベルが付いていない画像、またはタグが付いていないラベルが付いてる画像)のみをリストしてみることもできます。
docker images -q -a | xargs docker inspect --format='{{.Id}}{{range $rt := .RepoTags}} {{$rt}} {{end}}'|grep -v ':'
ただし、タグ付けされていない画像の一部は、他のユーザーが必要とする可能性があります。
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
2016年9月にdocker 1.13+について言及したように、古くて使われていないDockerイメージを削除する方法「」を実行することもできますimage prune
指示:
docker image prune
docker images -a | grep none | awk '{ print $3; }' | xargs docker rmi --force
しかし、ブライアンK: リポジトリ名 (またはタグ名のいずれか) に文字シーケンス ' none
' が含まれていないことを確認してください。含まれていると、正規表現に一致して削除されます。
これでは、タグ付きの画像(例:)は削除されませんでした。
<none>
foo/bar:<none>
docker images --digests
docker rmi foo/bar@<digest>
Janakaは「タグ付きの署名付き画像を削除する方法" からポール・V・ノヴァレーゼ:
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pvnovarese/mprime latest 459769dbc7a1 5 days ago 4.461 MB
pvnovarese/mprime <none> 459769dbc7a1 5 days ago 4.461 MB
診断手順
これら2つのエントリの違いは、
--digests=true
オプション(タグなしのエントリには Docker Content Trust 署名ダイジェストが含まれます):
# docker images --digests=true
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
pvnovarese/mprime latest <none> 459769dbc7a1 5 days ago 4.461 MB
pvnovarese/mprime <none> sha256:0b315a681a6b9f14f93ab34f3c744fd547bda30a03b55263d93861671fa33b00 459769dbc7a1 5 days ago
パウロは次のようにも述べている。モビー号 18892:
署名されたイメージをプルした後、" " 出力
<none>
に「余分な」エントリ (タグ付き)があります。これにより、イメージの取得が困難になります(強制するか、適切にタグ付けされたエントリを最初に削除するか、ダイジェストで削除する必要があります)。docker images
rmi
このスレッドまた、次のことを提案しています。
まず、削除したい特定の画像のタグを変更する必要があります。
docker tag container_id repo_name:new_tag_name # example docker tag 1234567er34r davesaah/my-repo:old
次に、docker rmiを使用して作成された新しいタグが付いたイメージを削除します。
docker rmi repo-name:tag # using the previous example docker rmi davesaah/my-repo:old
これにより、依存する子イメージを持つぶら下がっているイメージが削除されます。