2017-06-09 11 views
14

Dockerビルドコンテキストの目的は何ですか?ドキュメンテーションから、それはコンテンツ全体がドッカーデーモンに送られる「エントリー」ポイントであると私は理解しています。しかし、カレントディレクトリの内容全体を送信する点は何ですか?例で提供されているデフォルトのユースケースを想定しています.DockerfileにCOPYまたはADDディレクティブを明示的に含めて、カレントディレクトリのコンテンツをACTUALLY ?コンテキストがデーモンに送られて画像に含まれる場合、なぜこの余分なステップを実行する必要がありますか?圧縮されたアップロード/送信/コピータスクに、デフォルトで指定されたディレクトリの内容が含まれていないのはなぜですか?Dockerビルドコンテキストの目的は何ですか?

2.3:私は-tユーザー/ myprojectのを構築し、このコマンド ドッキングウィンドウを実行すると、このディレクトリ構造

-rw-r--r-- 1 me me 7 Jun 8 18:52 .dockerignore 
-rw-r--r-- 1 me me 1.1K Jun 9 12:42 Dockerfile 
drwxr-xr-x 13 me me 4.0K Jun 8 19:43 myproject 

考えます。

次に、生成されたイメージのどこかにmyprojectディレクトリがあると予想します。しかし、私はその場合には

ADD myproject/

を含める必要があります。

ビルドプロセスが現在のディレクトリの内容を圧縮してデーモンに送信する場合、どこに行くのですか?なぜ、そのコンテンツをイメージで利用できるようにしていないのですか?

答えて

12

TL; DR:

「クライアントとデーモンでも同じマシン上で実行されない可能性があるため、」 dockerコマンドは、お使いのPCで直接実行できるサービスです dockerdドッカクライアントです(Linux)またはOSXまたはWindowsのLinux VMの下で実行されます。

Q:Dockerビルドコンテキストの目的は何ですか? hereから

はおそらく、クライアントとデーモンがそうであっても、この「文脈」せずに、同じマシン上で実行されない可能性があるため、これは、このように起こることがあることも言及して良いでしょうデーモンのマシンは、そうでない場合は、他のADDのためのファイルを取得する方法や


Q

を持っていないでしょう:ビルドプロセスへの場合■現在のディレクトリの内容を圧縮してデーモンに送りますが、どこに行きますか?

ドッカーデーモンは、圧縮されたディレクトリを受信して​​処理します。その瞬間にどこに格納されているかは関係ありません。

Q:なぜ画像でそのコンテンツを利用できないのですか?

はこれを考える:どのようにどこにターゲット画像内の各ファイル/ディレクトリを置きたい ん知るドッカーことができますか? COPY/ADDディレクティブを使用すると、それぞれのディレクティブをどこに配置するかを制御できます。あなたが言及したケースは、単にディレクトリとターゲットのみを持つ簡単な例です。

+2

"クライアントとデーモンが同じマシン上で実行されない可能性があるため"特にAIUI以来、ほとんどの場合同じマシン上にあるため、転送がうまくいかない理由のようです。 Dockerは 'COPY'コマンドで必要なファイルだけを送ることもできます。 – Alec

関連する問題