2016-07-26 16 views
0

以前の私の会社では、マイクロサービスアーキテクチャを採用し、Dockerを使用して実装しました。私たちのDocker画像の平均サイズは〜300MB〜600MBでした。しかし、私の新会社はDockerを主に開発ワークフローに使用しており、平均画像サイズは〜1.5GB〜3GBです。一部の大きな画像(10GB +)は、画像サイズを縮小するために積極的にリファクタリングされています。Dockerの画像サイズが「大きすぎます」とは何ですか?

私が読んだすべてのものから、これらの画像が大きすぎると私たちは問題にぶつかりますが、Docker EngineとDocker Swarmが問題なくこれらの画像サイズを処理する必要があると感じています。

私の質問: Dockerイメージには理想的な範囲がありますか?GBイメージのワークフローを使用しようとするとどんな落とし穴がありますか?

答えて

-1

ドッカー自体は問題ないですが、私は群れについては何も言えません。あなたのチームだけが答えることができるものの、 "大きすぎる大きさ"。画像が5GBで、アプリケーションの90%がアプリケーションにとって重要であれば、それは肥大しているとは言えません。画像がわずか300Mで、アプリケーションの10%だけがアプリケーションに必要な場合は、膨らんでいると言えます。

FWIW、ちょうど今 "新しい"あなたの "新しい会社"によると、あなたがボートを揺らしていないなら、おそらく最高です。

1

私の場合でも、理想的なサイズはあなたのためにのみ理想的です。私と現在の会社にとって、1GB以上の画像はありません。

10GBのサイズの画像を使用しても問題はありません(これは可能ですか?)ので、大丈夫です。

問題の例として、「イメージがリモートサーバー/ devマシンにインターネット経由で配備されている間に1〜2時間待ってもよろしいですか?」という質問が考えられます。よくない。あなたがそのような問題に直面していない間に、あなたは全く問題がありません。
もう1つの問題は、小さな画像が数秒間起動する一方で、巨大な画像が数分間起動することです。それはあなたがそれを使用する場合、 "ホットデプロイ"スキームを壊すこともできます。

また、画像が非常に大きい理由を確認することも適切です。how layers workを読むことができます。
まず:

RUN download something huge that weight 5GB 
RUN remove something huge from above 

第二:あなたは2 Dockerfile持っている場合 まもなく、その結果

RUN download something huge that weight 5GB &&\ 
    remove something huge from above 

を、彼らは同じであるが、第二の画像は、最初の1未満重量5ギガバイトであります内部。

もう一つのトリックは、最初から小さい基本イメージを使用しています。ただ、この違いを比較:

IMAGE NAME  SIZE 
busybox  1 MB 
alpine   3 MB 
debian   125 MB 
ubuntu   188 MB 

DebianとUbuntuがほぼ同じ内部のですが、それは開始50メガバイトからあなたを救う、そして将来的にはあまり依存関係が必要になります。

+0

答えをありがとう。しかし、私の質問は「画像のサイズをどうやって減らすか」ではなく、「画像ができるだけ小さく、それでも3GBであれば、どんな問題に遭遇しますか? – user1873858

関連する問題