2016-11-02 5 views
-4

質問は意図的にいたずらされていますが、答えはそれほど明白ではありません。ドッカーとセットアップスクリプトの違い

Dockerのアドバタイジングされた付加価値の1つは、開発環境またはプロダクト環境を再現できるようにすることです。これは、同じ依存関係、環境変数を持つイメージを作成することによって行われます。環境によって必要とされるすべてがDockerfileに取り込まれ、これは素晴らしいことです。

このDockerアプローチと、依存関係とコードを取得して環境変数を設定するセットアップスクリプトとの違いは何ですか?

+4

"質問は意図的にいたずらされていますが、答えはそれほど明白ではありません。"これはあなたがすでに答えを知っている秘密の質問であるはずですか? –

+0

全くのトリックはありませんが、私はまだドッカーについて完全にはっきりしていません、そして、私はここで本当の洞察を期待しています;) – arennuit

答えて

2

ドッカーコンテナはサンドボックスとして機能しますが、これは大きな違いです。環境変数、インストールされたアプリケーションの依存関係、およびその他のコンポーネントは、Dockerコンテナ内に完全にローカライズされています。コンテナが削除されると、ホストにはインストールビットが残って膨らみません。

+0

ハ! "sandbox"、これは非常に自明の言葉です!ありがとう;) – arennuit

3

明白な点:単離

セットアップスクリプトを実行すると、環境に完全なインストールと変数が設定されます。しかし、あなたがそれに取り組むならば、自分の設定を破る危険性があります。代わりにこのインストールスクリプトでVMを使用することができます(コンテナとVMの違い、その強みなどを網羅した記事がたくさんあります)

複製可能

セットアップスクリプトは、多くの環境(例えば、Linux DebianまたはLinux Ubuntu)で実行できます。コンテナを使用する場合、コンテナは常に同じ環境になります(最適な環境を持つisoまたはisoを持つことが最も簡単なので、簡単に展開できます)。

その他のポイント:スケーリング

セットアップ環境の規模を1つの環境でテストできます。画像内の意志すべての依存関係、

+0

本当に面白いです。ありがとう;) – arennuit

1

ドッカーコンテナは自己完結している));を使用してexempleのために共有する(簡単に);

は、おそらく多くのより多くの理由があります。結果はホスト上の他のものとは独立して実行されます。完了したら、コンテナとイメージを取り除いてスペースを解放したり、既知の正常な状態にリセットすることもできます。

セットアップスクリプトは、ターゲットに一致するようにホスト環境を変更しますが、既知のクリーン状態から開始せず、外部性のリスクにさらされます。

これは、2つのセットアップスクリプトが同じホスト上で動作するため、互いに影響を与える可能性があることを意味します。それぞれ異なるバージョンのpythonまたはnodejまたはtomcatを必要とする2つのスクリプトがある場合、それらは互いに環境を破壊します。そして、既知のクリーンな基盤から始めるのではなく、あらゆる外部性をカバーする必要があります。

関連する問題