2017-05-29 8 views
2

ダングリングドッカーイメージを削除します。イメージとそのコンテナを一覧表示する方法

これらの画像を削除する前に、これらの画像からのインスタンスであるコンテナがあるかどうかを確認する必要があります。

もしそうなら、私はそれらをログに記録し、削除を中断したいと思います。

これまで私はそれについてのコマンドを見つけられませんでした。

私のソリューションは、すべてのコンテナdocker ps -aとすべてのダングリング画像docker images -aqf dangling=trueを取得し、コンテナからimageでイメージからrepo + tagを比較することであろう。

私はドッキングウィンドウの画像とそのコンテナを一覧表示する方法1.12

+1

するドッキングウィンドウを参照してください。 ps - 形式の祖先... – user2915097

+0

ドッカーは任意のコンテナによって使用されているイメージを削除できます。 –

+0

@ user2915097あなたは--filter/-f ancestorを意味すると思いますが、実際これが私が探しているものです – Hammelkeule

答えて

4

を使用していますか?

あなたのニーズに合うようにするために--formatを編集することができます。

docker ps -a --format="container:{{.ID}} image:{{.Image}}" 

画像をダングリング削除する方法は?

$ docker image prune 

WARNING! This will remove all images without at least one container associated to them. 
Are you sure you want to continue? [y/N] y 

あなたのドッキングウィンドウのバージョンでそのコマンドを持っていない場合でも、あなたは可能性:

このコマンドは、コンテナで使用されている画像に触れることなく、ダングリング画像をきれいにすることを意図しています以下を試してください。

イメージがダングリングしている場合は、IMAGE列にdocker psのハッシュが表示されます。これは通常のケースではないはずです。

docker ps -a --format="{{.Image}}" 

そして、このリストあなたのダングリング画像:

このプリントは、実行中で使用されるイメージが/コンテナを停止

docker images -qf "dangling=true" 

注意してください:

#!/bin/bash 

# Remove all the dangling images 
DANGLING_IMAGES=$(docker images -qf "dangling=true") 
if [[ -n $DANGLING_IMAGES ]]; then 
    docker rmi "$DANGLING_IMAGES" 
fi 

# Get all the images currently in use 
USED_IMAGES=($(\ 
    docker ps -a --format '{{.Image}}' | \ 
    sort -u | \ 
    uniq | \ 
    awk -F ':' '$2{print $1":"$2}!$2{print $1":latest"}' \ 
)) 

# Remove the unused images 
for i in "${DANGLING_IMAGES[@]}"; do 
    UNUSED=true 
    for j in "${USED_IMAGES[@]}"; do 
     if [[ "$i" == "$j" ]]; then 
      UNUSED=false 
     fi 
    done 
    if [[ "$UNUSED" == true ]]; then 
     docker rmi "$i" 
    fi 
done 
+0

私のダングリング画像を削除する前にこれらのぶら下がった画像のインスタンスであるコンテナがあるかどうかを確認したい。ですから、私はuser2915097がdocker ps -qf ancestor = imageIDを実行していると言いました。だから私はすべての関連するコンテナを削除することができますし、その後、イメージを削除します。 – Hammelkeule

+0

あなたは 'docker system prune'には役に立ちませんか? – Robert

+0

https://docs.docker.com/engine/reference/commandline/system_prune/ – Robert

関連する問題