GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

.NET Core と Docker

Docker がインストールされている場合は、このように .NET Core サンプルをすばやく実行できます。試してみてください:

docker run --rm microsoft/dotnet-samples

Docker for Windows が「Windows コンテナー モード」の場合は、次のように .NET Framework (4.x Windows Framework) を試すことができます:

docker run --rm microsoft/dotnet-framework-samples

先週、コンテナー化されたアプリケーションを Azure に簡単に移行できることを示すビデオを作成しました。秒単位の課金で安く。

コンテナー イメージは、Docker Hub、Docker Store、およびプライベート Docker レジストリ (Azure Container Registry など) を介して簡単に共有できます。 Visual Studio Tools for Docker もチェックしてください。すべてがうまく連携します。

リチャード・ランダーのこの引用が好きです:

<ブロック引用>

5 年ほど前に、ある人が就職の面接で、一貫性を非常に重視しているため、アプリには常にオペレーティング システムを同梱していると語ったと想像してみてください。あなたはおそらく彼らを雇わなかったでしょう。しかし、それはまさに Docker が使用するモデルです!

しかもいいモデル!一貫性が保証されます。 「コンテナには、アプリケーションとそのすべての依存関係が含まれます。アプリケーションは、コンピューター、環境、またはクラウドに関係なく、同じコードを実行します。」これは、基礎となる .NET がセキュリティ修正で最新であることを確認する良い方法でもあります:

<ブロック引用>

Docker は、.NET の更新を取得して使用するためのゲーム チェンジャーです。ほんの数年前のことを思い出してください。 Windows では、最新の .NET Framework を MSI インストーラー パッケージとしてダウンロードします。次のバージョンが出荷されるまで、再度ダウンロードする必要はありません。今日に早送りします。月に数回、更新されたコンテナー イメージを Docker Hub にプッシュします。

.NET イメージは公式の Docker イメージを使用して構築されます。これは素晴らしいことです。

<ブロック引用>

.NET イメージは公式イメージを使用して構築されます。 x64 および ARM 用の Alpine、Debian、および Ubuntu の公式イメージの上に構築します。公式イメージを使用することで、オペレーティング システムのベース イメージや OpenSSL などのパッケージを定期的に更新するコストと複雑さを、これらのテクノロジに最も近い開発者に任せることができます。代わりに、ビルド システムは、使用する公式イメージが更新されるたびに .NET イメージを自動的にビルド、テスト、およびプッシュするように構成されています。このアプローチを使用して、複数の Linux ディストリビューションで .NET Core を低コストで提供し、数時間以内に更新をリリースすることができます。

.NET Docker Hub リポジトリは次の場所にあります:

.NET Core リポジトリ:

  • microsoft/dotnet – .NET Core ランタイム、SDK、および ASP.NET Core イメージが含まれています。
  • microsoft/aspnetcore – .NET Core 2.0 以前のバージョンの ASP.NET Core ランタイム イメージが含まれています。 .NET Core 2.1 以降では、microsoft/dotnet を使用します。
  • microsoft/aspnetcore-build – .NET Core 2.0 以前のバージョン用の ASP.NET Core SDK と node.js が含まれています。 .NET Core 2.1 以降では、microsoft/dotnet を使用します。 aspnet/announcements #298 を参照してください。

.NET Framework リポジトリ:

  • microsoft/dotnet-framework – .NET Framework ランタイムと SDK イメージが含まれています。
  • microsoft/aspnet – IIS 用に構成された ASP.NET Web フォームおよび MVC 用の ASP.NET ランタイム イメージが含まれています。
  • microsoft/wcf – IIS 用に構成された WCF ランタイム イメージが含まれています。
  • microsoft/iis – Windows Server Core 基本イメージの上に IIS が含まれています。 .NET Framework アプリケーションで動作しますが、最適化されていません。それぞれのアプリケーション タイプを実行するには、代わりに microsoft/aspnet と microsoft/wcfrepos をお勧めします。

microsoft/dotnet リポジトリには、いくつかの種類の画像があります:

  • SDK — .NET Core CLI、.NET Core ランタイム、および ASP.NET Core を含む .NET Core SDK イメージ。
  • aspnetcore-runtime — .NET Core ランタイムと ASP.NET Core を含む ASP.NET Core イメージ。
  • ランタイム — .NET Core ランタイムを含む .NET Core ランタイム イメージ。
  • ランタイム定義 — .NET Core ランタイム依存関係イメージ。.NET Core 自体ではなく、.NET Core の依存関係のみが含まれます。このイメージは、自己完結型のアプリケーションを対象としており、Linux 用にのみ提供されています。 Windows の場合、すべての .NET Core 依存関係がそれによって満たされるため、オペレーティング システムの基本イメージを自己完結型アプリケーションに直接使用できます。

たとえば、SDK イメージを使用してアプリをビルドしますが、それを出荷するには aspnetcore-runtime を使用します。実行中のアプリに SDK を同梱する必要はありません。画像サイズをできるだけ小さくしたい!

私にとっては、Podcast サイト (podcast:test とタグ付けされた画像) をビルドしてテストする小さな PowerShell スクリプト (Windows または Linux で実行) も作成しました (docker 内で)。 .ボリューム マッピングに注意してください。テスト結果はコンテナーの外部に保存されるため、必要に応じて後で確認できます。

#!/usr/local/bin/powershell
docker build --pull --target testrunner -t podcast:test .
docker run --rm -v c:\github\hanselminutes-core\TestResults:/app/hanselminutes.core.tests/TestResults podcast:test

かなり滑らかです。

Results File: /app/hanselminutes.core.tests/TestResults/_898a406a7ad1_2018-06-28_22_05_04.trx

Total tests: 22. Passed: 22. Failed: 0. Skipped: 0.
Test execution time: 8.9496 Seconds

.NET Core イメージがどのように構築、管理、維持されているかを読んでください。これにより、自分のポッドキャスト サイトを取得するのが簡単になりました。ドッキングすると、Raspberry Pi (ARM32) 上の .NET Core で実行されます。

新しいスポンサー! もう請求書を入力する必要はありません。 ActivePDF の DocSight OCR を使用すると、ゾーン データ キャプチャ テクノロジを使用して、請求書、請求書、発注書、およびその他のドキュメントからデータを抽出できます。今すぐデジタル トランスフォーメーションを達成しましょう!


Docker
  1. Debian10に.NETCoreをインストールする方法

  2. podmanとdockerの違い。

  3. なぜデイスとそれは何ですか?

  1. Docker(およびLinuxコンテナー)とは何ですか?

  2. .NET Core アプリが Docker コンテナーで実行され、XUnit で SkippableFacts が実行されていることを検出する

  3. Linux 上の .NET コア X509Store

  1. Dockerを使用する時期と理由

  2. UbuntuにDockerとWordPressをインストールする

  3. ASP.NET Core Docker イメージ サイズの最適化