IRONSOFTWAREHOME

.NET CLIでC#アプリケーションを簡単にコンテナ化する

 .NET CLI を使用して C# アプリケーションを簡単にコンテナ化する

Tim Corey

9 分 57 秒

コンテナは強力なツールですが、多くの開発者にとって、C#アプリケーションをコンテナに入れるというアイデアは圧倒的に難しく感じられます。 Dockerファイルのセットアップと依存関係の手動処理は複雑です。 しかし、ティム・コーリーがビデオで説明しているように、.NET CLIはこのプロセスを簡素化し、開発者がDockerファイルを必要とせずにアプリケーションをコンテナ化できるようにします。

この記事では、Tim氏のビデオ"Containerize Your C# Application Easily with the .NET CLI"のステップバイステップのアプローチを使用して、C#アプリケーションのコンテナ化について詳しく見ていきます。Timのガイダンスに従うことで、.NETアプリケーションをDockerコンテナに簡単に公開する方法を理解できます。

コンテナ用.NET CLI入門

ビデオの冒頭で、ティムはコンテナ化の必要性について説明しています。 コンテナは素晴らしいツールですが、Dockerfileをセットアップして正しく設定するプロセスは複雑です。

手動でDockerfileを作成する代わりに、Timは.NET CLIを使った簡単なアプローチを紹介します。 この方法により、開発者はDockerfileを手動で記述することなく、コンテナ化されたアプリケーションを作成することができます。

ティムはまた、このビデオは、技術的なトピックを迅速かつ効果的に紹介することに重点を置いた10分トレーニングシリーズの一部であることを明らかにしています。

アプリケーションのセットアップ

Timはまず、最小限のWeb APIアプリケーションを例に挙げて説明します。 アプリケーションには/messagesと呼ばれる単一のエンドポイントが含まれており、いくつかのデータを返します。

コンテナ化する前のアプリケーションの動作を示すために、Tim はローカルでアプリケーションを実行します。 彼が/messagesエンドポイントにアクセスすることで、コンテナの外で正しく動作することを確認します。

また、コンテナ化を進める前に、次のことも確認している:

  • Dockerは彼のマシンにインストールされ、実行されています。
  • スタート時点では、既存のDockerイメージやコンテナはありません。

これにより、新しいコンテナが作成されたときに、変更点が明確にわかるようになります。

コンテナイゼーションの準備

アプリケーションをコンテナ化するために、ティムはプロジェクトディレクトリ内のコマンドラインに移動する。 そして、次のコマンドを実行する:

dotnet publish -o:Linux -a:x64 -p:PublishProfile=DefaultContainer -c:Release

ティムはコマンドの各パートを分解します:

  • -o:Linux → Linuxベースのコンテナ用にアプリケーションを公開します。
  • -a:x64 → アーキテクチャを64ビットとして指定します。
  • -p:PublishProfile=DefaultContainer → デフォルトのコンテナ設定を使用します。
  • -c:Release → パフォーマンス向上のためにリリースモードでアプリを公開します。

Tim氏は、Windowsコンテナは主に.NET Frameworkアプリケーションのブリッジとして機能するため、WindowsコンテナよりもLinuxコンテナが好まれることを強調しています。

コンテナの公開と作成

Publishコマンドを実行すると、.NET CLIが自動的に必要な設定を決定し、すべてをコンテナにパッケージ化するとTimは説明する。 彼はこう指摘する:

  • この方法ではDockerfileは必要ありません。
  • このプロセスでは、アプリケーションを構築し、1つのステップでコンテナ化します。
  • ベースイメージは、Microsoft for .NET 8ランタイムコンテナを使用しています。

公開後、彼はDocker Desktopをチェックし、新しいコンテナイメージbackground-demoが作成されたことを確認します。 初期コンテナサイズは221MBです。

ティムは、このサイズは後で縮小できると視聴者を安心させています。

コンテナの実行

コンテナ化されたアプリケーションをテストするために、Tim氏はDocker Desktopから直接コンテナを起動します。まだ実行中のコンテナはないため、彼は "Run "をクリックし、オプションの設定を行います:

  • 彼は、コンテナの内部ポート(ランダムに割り当てられる)をホストマシンのポート8080にマッピングする。

起動後、ウェブブラウザを使ってアプリケーションにアクセスする。 最初はルートURLにアクセスすると404エラーが出ますが、/messagesに移動すると期待されたデータが正常に表示されます。

ティムは重要なポイントを強調しています:

  • アプリケーションはコンテナ内のUTCタイムで実行されるため、ローカルマシンのタイムゾーンとは異なる場合があります。

また、このアプリケーションはリリースモードで公開されているため、Swagger UIはデフォルトで無効になっています。

コンテナ サイズの最適化

現時点では、デフォルトのコンテナ・サイズは221MBで、ティムもかなり大きいと認めている。 サイズを小さくするために、ベースとなる画像を薄くしている。

jammy-chiseledに設定し、より小さいUbuntuベースのイメージにします。

builder.Services.Configure<ContainerOptions>(options => options.ContainerFamily = "jammy-chiseled");

その後、publish コマンドを再実行し、コンテナを再構築した後、イメージのサイズを再度チェックする。

新しい画像サイズは113MBで、約100MBの削減となります! サイズは小さくなりますが、アプリケーションの機能は同じです。

コンテナーの削除と再作成

Timは、ワークスペースをクリーンアップするためにコンテナを削除するデモを行っています。 しかし、Dockerイメージは利用可能なままなので、必要に応じてコンテナを再作成することができます。

彼は、一度コンテナが構築されれば、それが可能であることを強調している:

  • 開発とテストのためにローカルで実行します。
  • Docker HubやAzure Container Registryのようなコンテナレジストリにプッシュします。
  • クラウド展開されたウェブアプリケーションのベースとして使用されます。

結論と最終的な考え

Timは、コンテナ化に.NET CLIを使用する主な利点を強化することで、ビデオを締めくくります:

1.Dockerファイルは不要 - .NET CLIがすべて自動的に処理します。 2.迅速で簡単なプロセス - たった1つのコマンドで、アプリケーションをコンテナ化できます。 3. 小さく最適化されたイメージ – jammy-chiseledを使用することでコンテナサイズが縮小されます。 4.シームレスなデプロイ - コンテナは、さまざまなクラウドサービスにプッシュすることができます。

最終的な考え

.NET CLIを使用したC#アプリケーションのコンテナ化に対するTimのアプローチは、シンプル、迅速、かつ効果的です。彼の方法に従うことで、開発者はDockerの幅広い知識を必要とせずにコンテナを作成し、最適化することができます。

Linuxコンテナ、最適化されたベースイメージ、合理化されたパブリッシングコマンドを活用することで、開発者は最小限の労力で効率的にアプリケーションをコンテナ化することができます。

より深く知りたい方は、ティム・コーリーのビデオをぜひご覧ください。 また、全プロセスの明確なステップバイステップのウォークスルーを提供します。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。