Docker 削除 TAG画像 質問する

Docker 削除 TAG画像 質問する
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 --digestsdocker 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

これにより、依存する子イメージを持つぶら下がっているイメージが削除されます。

おすすめ記事