2016-09-01 5 views
3

私は、ドッカーがどのような実用上の問題を解決しているのかを正確に理解するのに苦労しています。ドッカーは「コンテナ1つのプロセス」を規定しています。あなたのコンテナが1つのプログラム/プロセスのみをカプセル化している場合、静的にリンクされた実行可能ファイルにはどのような利点がありますか?これは基本的に同じことを(プログラムをカプセル化して)はるかに単純で効率的な方法で行いませんか?静的にリンクされたEXEに比べてドッキング用のコンテナの利点は何ですか?

+0

大きな質問です。実際には、ドッカーのコンテナをプロセスと考えるのが最善ですが、実際には独自の環境、ネットワーキング、ロギングなどの小さなVMもあります。 – Alkaline

答えて

1

ドッカー静的にリンクされたexeファイルがないことを一般的な問題のリストを解決:

  • あなたが知られているファイルシステム内のフォルダを使用してアプリを配布し、環境変数を初期化し、ネットワークの設定は、以前に作成し、作業に設立します。フォルダ、パス、環境変数などの作成や、権限エラー、ネットワーク未確認、ABI非互換性などのためにクラッシュする危険性があります。
  • マイクロサービスアーキテクチャを設定する方が便利です。競合する競合やバックエンドサービスを配布、ロード、実行するためのツールを用意することなく、それぞれ独自の環境でそれぞれを実行する多くのインスタンス。
+0

1)おそらく秘密はドッカーのイメージに焼き付けられていないので、何とかこれを何とかして渡す必要があります。 2)ツーリングは、ドッカーに有利な点です。 – grasevski

+2

ABIの互換性は「秘密」値ではありません。バイナリがUbuntuマシンで作成されていて、静的にリンクされていても、これらのバイナリのみを配布している場合、Red Hat、CoreOSなどの他のOSはそれを実行する保証はありません。おそらくソースコードを配布するか、すべてのターゲットOS用のバイナリ、apt-get、yumなどの配布パッケージを作成することができます。または、Dockerイメージを作成し、Dockerイメージをロードして実行できるターゲットマシンに配布するだけです。 –

+0

ああ、ええ、ABIとの互換性は原理的には妥当な点であり、私のユースケースにとって重要なヒープではないかもしれません。本質的には、1つのOSを選択することを「DockerOS」と呼んでみましょう。 – grasevski

1

よくない。

chroot()またはjail()またはpledge()のようなものです。ドッカーの利点は、プログラムが実行されているユーザーコンテキストを簡単に変更できることです。

もう1つの利点は、ホストが完全に異なるOSを使用できることです。 e。 g:Linux上のMS Dotnetコア1。

+0

hm so dockerはLinux上でWindowsアプリケーションを実行する別の方法です。 「ユーザーコンテキストを変更したい」場合は、いつexeファイルよりもドッカーで簡単にできますか? – grasevski

+0

win <> linuxを実行するのは単なる例でした。限られた権限を持つexe/binファイルや、同じexe/binファイルのxインスタンスを独立して実行するのは簡単ですか? – Aleksandar

+0

2)、ちょうど 'for $ in(seq x); ./app&done'を実行します。 1)私は限られた権限などで走っていることに慣れていませんが、あなたはプログラムの制限を持つことができ、あなたは 'limit app'をやっていると思います。 1)ユースケースは私にはあまり関係がありません。 – grasevski

関連する問題