2016-11-06 6 views
0

docker rmiで既存のコンテナがある画像を削除しようとすると、エラーメッセージが表示されます。 (通常)ドッカー画像を強制的に削除すると、それを使用している既存のコンテナにどのように影響するか

強制フラグを追加するとdocker rmi -fイメージが削除され、docker ps -aを使用してコンテナ状態を確認すると、コンテナはまだそこにありますが、イメージ名はIDになります。

私の質問はどこから来ましたか?それはキャッシュに保存され、既存のコンテナに使用されるイメージのコピーです。docker imagesリポジトリと名前でイメージが見つかり、そのIDが新しい既存のコンテナに影響を受けています。

次の別の質問 コンテナが作成されたら、既存の(ローカル)イメージ上の何かを変更して、既存のコンテナに影響を与えますか?

ありがとうございました。

答えて

1

ドッカーイメージには名前とイメージIDがあります。このblogは、イメージIDがpre-docker-v1.10以降のどこから来ているかを記述しています。

実行中のコンテナで使用されているイメージのdocker rmi -fイメージを実行すると、実際にはイメージは削除されませんが、イメージの名前とタグは削除されます。

だから、実際にdocker psが表示されます:

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS     NAMES 
578e28246977  96931e4c66bd  "/bin/tini -- /usr/lo" 3 minutes ago  Up 3 minutes  8080/tcp, 50000/tcp drunk_shannon 

しかしdocker imagesはまだあなたのイメージを示している。

<none>       <none>    96931e4c66bd  6 weeks ago   711.9 MB 

それはちょうどタグなしです。このコンテナを削除した後もイメージは削除されません。イメージはリストに残ります。

docker tag 96931e4c66bd my-jenkins:1.0 

docker imagesよりショー:

my-jenkins      1.0     96931e4c66bd  6 weeks ago   711.9 MB 

次のもう一つの問題あなたは

あなたも、それを再タグ付けすることができます(IDを使用して)docker run -d 96931e4c66bdでそれから新しいコンテナを起動することができます。コンテナが作成されたら、 は既存の(ローカル)イメージ上の何かを変更して、いかなる方法でも影響しますか? 既存のコンテナはありますか?

いいえ、イメージ(同じ名前)に「更新」を行うと、実行中のコンテナのイメージ名が失われる可能性があります(イメージIDを持つだけです。コンテナが実行中)。 最新のイメージからコンテナを実行するには、新しいイメージ(更新後に別のイメージIDを持つ)でrunコマンドを再実行する必要があります。

+0

それは私の考えを確認します。ありがとう。 –

関連する問題