.NET と .NET Core (そして Windows!) は、Docker によってどんどん良くなっています。 Linux コンテナーと Windows コンテナーの両方をサポートする Docker for Windows を実行します。 Stable チャネルと Edge チャネルの両方があります。 Edge (ベータ) チャネルは定期的に更新されており、原則として、私が運用している年にどんどん良くなっています.
少し関係のない補足として、私は Synology NAS で多数のコンテナと .NET Core (私の Nas は Intel チップ)、Minecraft サーバー、Plex サーバー、および CrashPlan で Docker を実行しています。
<ブロック引用>注: Docker for Windows には、64 ビットの Windows 10 Pro と Microsoft Hyper-V が必要です。前提条件の完全なリストについては、インストールする前に知っておくべきことを参照してください。
Microsoft の .NET チームは、dockerfile を整理して整理しています。 見える 最初は反対で、不可解なタグと名前がたくさんありますが、ここで読むことができる明確な方法があります.
彼らは、Docker Hub のいくつかの異なるリポジトリに Docker イメージを公開しています。イメージをセグメント化して、Docker Hub Web サイトと docker search
の両方で簡単に見つけられるようにすることが重要です。 指図。
- microsoft/dotnet — Linux および Nano Server 用の .NET Core ランタイムおよび SDK イメージ。
- microsoft/aspnetcore — Linux および Nano Server 用の ASP.NET Core イメージ。
- microsoft/aspnetcore-build — アプリの構築を目的とした、Linux および Nano Server 用の ASP.NET Core イメージ。
- microsoft/dotnet-framework — Windows Server Core 用の .NET Framework 3.5 および 4.6.2 イメージ。
- microsoft/aspnet — Windows Server Core 用の .NET Framework 3.5 および 4.6.2 ASP.NET イメージ。
次の場所にもいくつかのサンプルがあります:
- microsoft/dotnet-samples — .NET Core サンプル。
- microsoft/dotnet-framework-samples — .NET Framework のサンプル
サンプルは非常に簡単に試すことができます。読むのをやめて、今すぐ試してみてください。;)
私はいつも素敵な非同期 ASCII プログレス バーに感銘を受けています。私は印象に残りやすいです。これは驚きの ASCII アートを使用した「hello world」のサンプルです。ネタバレはしません。
C:\Users\scott\Desktop> docker run microsoft/dotnet-samples
Unable to find image 'microsoft/dotnet-samples:latest' locally
latest: Pulling from microsoft/dotnet-samples
10a267c67f42: Downloading [========> ] 9.19MB/52.58MB
7e1a7ec87c21: Downloading [======================> ] 10.8MB/18.59MB
923d0cd2ed37: Download complete
7c523004cf83: Downloading [=========> ] 6.144MB/33.07MB
f3582118a43a: Waiting
c27ef6b597a0: Waiting
すべてのイメージは GitHub で管理および保守されているため、イメージやファイルを掘り下げていない場合でも参加できます。
注目すべき興味深い点の 1 つは、開発イメージと運用イメージの違い、および CI/CD (ビルド サーバー) の状況で他のイメージをビルドするために使用するイメージです。以下は GitHub の例です:
開発
- dotnetapp-dev - このサンプルは、.NET Core SDK イメージに依存しているため、開発と構築に適しています。
dotnet
を実行します コマンドを実行することで、Docker イメージの作成にかかる時間を短縮します (変更を加えてコンテナーで繰り返しテストすると仮定します)。
生産
- dotnetapp-prod - このサンプルは、より大きな .NET Core SDK イメージではなく、.NET Core ランタイム イメージに依存しているため、運用に適しています。ほとんどのアプリはランタイムのみを必要とし、アプリケーション イメージのサイズを縮小します。
- dotnetapp-selfcontained - このサンプルは、オペレーティング システム イメージ (.NET Core なし) に依存しているため、運用シナリオにも適しています。自己完結型の .NET Core アプリには、基本イメージに一元的にインストールされるコンポーネントとしてではなく、アプリの一部として .NET Core が含まれます。
- dotnetapp-current - このサンプルは、.NET Core 1.1 イメージを使用するようにアプリケーションを構成する方法を示しています。 .csproj と Dockerfile の両方が更新され、.NET Core 1.1 に依存するようになりました。このサンプルは、新しい .NET Core バージョンに依存することを除いて dotnetapp-prod と同じです。
- aspnetapp - このサンプルは、Docker 化された ASP.NET Core Web アプリを示しています
VS Code、Visual Studio 2017、および Visual Studio for Mac (プレビュー チャネル) では、優れた Docker サポートが提供されています。 Windows で VS と Docker を使用すると、F5 キー (デバッグ) で Linux コンテナーに入ることができます。
仮想マシンで実行されている .NET Framework アプリをコンテナー インフラストラクチャに移行したいと考えている方もいるでしょう。 Docker が維持している Image2Docker というツールが役立ちます。 VM をコンテナに移行するのに役立ちます。詳細については、Image2Docker DockerCon の講演をご覧になるか、Docker の Convert ASP.NET Web Servers To Docker with ImageDocker をお読みください。
「コンテナ船」 by NOAA の National Ocean Service は の下でライセンスされています CC BY 2.0
スポンサー: ASP.NET Core と Serilog を強力にサポートする Seq:シンプルな集中ログをインフラストラクチャで確認してください。バージョン 4.0 をダウンロードしてください。