2016-10-09 7 views
2

ドッカーコンテナの中で実行したいと思っています。ドッカーコンテナ内で信頼されていない.netコアアプリケーションを実行するためのベストプラクティス

  • 簡単にするために、のは、そのアプリケーションがdotnet newによって生成されたシンプルなのHello Worldコンソールアプリケーションであると仮定してみましょう。これは、2つのファイルProgram.csproject.jsonです。私のホストのいくつかのフォルダ
  • にアプリケーションがボリュームとしてそのフォルダをマウント、microsoft/dotnet画像を使用して新しいコンテナを作成することを

    • コピーを、:今私は、次のアプローチを試してみました

    アプリをビルドして実行するための特定のコマンドを実行している:

    $ docker run --rm -it --name dotnet \ 
          -v /some/temp/folder/app:/app \ 
          microsoft/dotnet:latest \ 
          /bin/sh -c 'cd /app && dotnet restore && dotnet run' 
    

私はまた、基本イメージとしてmicrosoft/dotnetを持つあらかじめ定義されたドッカーファイルを持っているという考えを考えていました。基本的にアプリケーションコードを埋め込み、それを作業ディレクトリとして設定し、復元、構築、実行コマンドを実行します。

FROM microsoft/dotnet:latest 
COPY . /app 
WORKDIR /app 

RUN ["dotnet", "restore"] 
RUN ["dotnet", "build"] 

ENTRYPOINT ["dotnet", "run"] 

私は、その後、一時フォルダに事前に定義されたdockerfileをコピーするだけで、その特定のアプリケーションのための新しいイメージを構築し、最終的にそのイメージを使用して新しいコンテナを実行することができます。

シンプルなコマンドラインアプリケーションでは、ドッカーファイルのアプローチが過剰ですか?これらの信頼できないアプリケーションを実行するためのベストプラクティスは何ですか?私はそれが実行され、ドッキングウィンドウのコマンドは、いくつかのアプリケーションによって生成された後、私はおそらく最初のオプションで滞在するコンテナを破棄しますので

EDIT

を(私は完全に無視する1かもしれません)ボリュームをマウントするだけです。

は、私はまた、彼らは同様のsanbox環境を構築し、同じ mounted volume approach

答えて

2

は限り私が知っている、ドッキングウィンドウに何が起こるか、ドッキングウィンドウに留まり、次の終わったthis blog postを発見しました。

イメージにボリューム(-v)をリンクすると、プロセスはマウントしたフォルダ内のファイルを変更できます。しかし、そこにしかない。明らかなセキュリティ上の理由から禁止されているため、プロセスはシンボリックリンクやマウントされたフォルダから抜け出すことはできません。

アプリケーションコードをリンクしてアプリケーションコードをイメージにコピーしても、それは確実に分離されています。

TCP/UDPポートの博覧会は、あなた次第ですだけでなく、メモリ/ CPU消費量と、あなたもインターネットe.g. like that


からプロセスを分離することができますので、私はdockerfileを使用しているとは思いません行き過ぎと私はこのようにそれを要約したい:

あなたが一度それを実行したい場合は、それを試してみて、それを忘れて - あなたは厄介なコマンドを入力して[OK]をしている場合は、コマンドラインを使用します。もっと使いたいなら、Dockerfileを作成してください。私はここで「ベストプラクティス」を宣言するための多くのスペースを見ません。個人的な好みの問題だと考えています。

+0

たぶん私はシナリオのためのベストプラクティスやアプローチになり、これらの2つのオプションのどちらを意味し、より明示的にされている必要があります。私はちょうどコンテナを回転させて、アプリケーションを実行して後で破棄できるようにしたいので、イメージを作成するのはちょっとの無駄かもしれないと思って、ボリュームをマウントするだけで十分でしょう。しかし、私はドッキングウィンドウで多くの経験を持っていないと私はDanielJ.G @他 –

+0

の賛成で1を支配するだろう詳細を見下ろすことがあります。私はそれが技術的に大きな違いをもたらさないため、この時点で個人的な好みの問題になると言いたい。私の視点から - ドッカーファイルを使用すると、それはより分離され、毎回そのhell-ishコマンドを書く必要はありません。いつでもイメージを再利用/削除できます。 – rudolfdobias

+0

@ DanielJ.G。あるいは、私はこう言っています:あなたが一度それを実行したい場合は、それを試して忘れてください - コマンドを入力しても問題ないなら、コマンドラインを使用してください。もっと使いたいなら、ドッカーファイルを作成してください。私はここで "ベストプラクティス"を宣言するためのスペースを見ません... – rudolfdobias

関連する問題