2017-11-22 2 views
0

私はmicrosoft/aspnet:4.6.2に基づいて画像を持っています。それらの画像が作られたとき、私自身の画像を構築するためにmicrosoft/aspnet:4.6.2がプルダウンされました。だから、私のローカルコンピュータには、microsoft/aspnet:4.6.2イメージがあります。ベースイメージが更新され、Microsoftがイメージのバグを見つけてタグを維持することを決めたので、まだmicrosoft/aspnet:4.6.2と呼ばれていますが、実際には自分のイメージを構築したときとは異なるイメージです。イメージのベースイメージが更新されるとどうなりますか?

私には2つの質問があります:
1.私のイメージがプルダウンされるたびに、自分のイメージを構築したときと同じベースイメージが得られますか?
2. microsoft/aspnet:4.6.2の新しいバージョンがあります。docker buildコマンドをもう一度実行して新しいイメージをプルダウンできますか?(ウェブフック、トリガー?)古いベースイメージが私のファイルシステムにあることを覚えておいてください。 Dockerは、私がそのベースイメージの古いバージョンを持っていることを認識するのに十分なほどスマートですか?最新のバージョンをダウンロードしますか?私は自分自身をクリア

+0

バグを修正し、同じ 'tag 'を使って新しい' image'をリリースするのは悪いことです。これは再現性のある動作を保証するものではありません。あなたは[this](https://stackoverflow.com/a/26833005/1561148)と[this](https://medium.com/@mccode/the-misunderstood-docker-tag-)を見てみるとよいでしょう。 latest-af3babfd6375)( 'latest'タグについて) – tgogos

答えて

1

あなたの画像作ら

希望は、誰かがダウンロードして、常に同じままになります。イメージは特定のlayersに依存してイメージにSHA256チェックサムを与えます。親レイヤを変更すると、イメージを参照するために使用されるチェックサムが変更され、新しいイメージになります。イメージが変更される唯一の方法は、イメージがタグによって参照され、ローカルタグが手動で変更された場合、またはイメージタグを再度プルする場合です。

docker buildは、デフォルトでローカル画像を最初に使用します。最新のタグ付きイメージを使用するには、docker build --pullを実行するか、別途docker pullまたはdocker rmi IMAGEをビルドする必要があります。

Docker Hubビルドサービスには、機能があり、特定のイメージがハブ内で更新されると自動的に再構築されます。

1
  1. はい。 (内部では、ベースイメージを参照するために、名前ではなくIMAGE IDを使用します)
  2. デフォルトではIIRCはスマートではありません。 (docker build--pullスイッチがある)
1

最新リリースの基本イメージが必要な場合は、クリーンアップ後のドッキングウィンドウのビルド

を行う場合を除き、他のドッキングウィンドウは、常にローカルで利用可能な画像が使用されます構築するドッキングウィンドウの間に-no-cacheオプションを使用します
+0

'--no-cache'と' --pull'の違いは何ですか?文書はそれについて明確ではありません – sebagomez

+0

彼らはほとんど同一です。 IIRCのプルには、no-cacheと比較してオープンなバグがあります。 – Jeel

関連する問題