Docker コンテナで ASP.NET Core を実行する手順

Docker コンテナで ASP.NET Core を実行する手順

最近は学ぶべき知識が多すぎて、どれを先に学べばいいのかわかりません。このブログはもともとxamarin.formsのlistviewの使い方について書くつもりでした。Jianshuにlistviewの使い方を詳しく紹介している記事があるので、とりあえず保留にします。二次的な作業なので後で書きます。今週、私は万能の Taobao でブロックチェーンに関するチュートリアルを見つけ、.net Core について学びました。ここ 1、2 年は C# の技術をあまり追っておらず、Java に重点を置いていました。.net core 1.0 がリリースされたとき、.net core はまだ完璧ではないと感じたので、学習しませんでした。.net core がこんなに早く 3.0 に到達するとは思っていませんでした。やはり私は C# 出身なので、ルーツを忘れるわけにはいかないので、今後は .net core についても学んでいこうと思っています。ざっと調べてみると、.net との共通点がたくさんあることが分かりました。おそらく最大の特徴はクロスプラットフォームの部分でしょう。この記事ではまず、docker を使用して asp.net core アプリケーションを実行する方法を紹介します。

1. 新しいasp.netコアアプリケーションを作成する

ここで、myWebApp という新しい asp.net core アプリケーションが作成されます。

2. Dockerサポートを追加する

docker サポートを追加する方法は 2 つあります。1 つは、新しいプロジェクトを作成するときに docker サポートを有効にする方法、もう 1 つは、作成したプロジェクトを右クリックし、[追加] -> [docker サポート] を選択する方法です。

また、ウィンドウプラットフォームかLinuxプラットフォームかを選択する必要があります。ウィンドウシステムの場合はウィンドウプラットフォームを設定する必要があり、Dockerもウィンドウコンテナに設定する必要があります。次の図に示すように、間違ったプラットフォームが選択されているため、「イメージ オペレーティング システム「windows」はこのプラットフォームでは使用できません」というエラーが報告されます。

3. Dockerイメージを作成する

docker サポートを追加すると、dockerfile ファイルが自動的に生成されます。ここで落とし穴があります。COPY ["myWebApp/myWebApp.csproj", "myWebApp/"] の行で、myWebApp ディレクトリ内の myWebApp.csproj プロジェクト ファイルである myWebApp/myWebApp.csproj に注意する必要があります。そのため、作成された dockerfile をプロジェクト ファイル ディレクトリにコピーする必要があります。

#コンテナを構築または実行するホストマシンのオペレーティング システムによっては、FROM ステートメントで指定されたイメージを変更する必要がある場合があります。
#詳細については、https://aka.ms/containercompat を参照してください。

microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-sac2016 AS ベースから
ワークディレクトリ /app
エクスポーズ80

microsoft/dotnet:2.2-sdk-nanoserver-sac2016 AS ビルドから
ワークディレクトリ /src
コピー ["myWebApp/myWebApp.csproj", "myWebApp/"]
dotnet restore "myWebApp/myWebApp.csproj" を実行します。
コピー 。 。
ワークディレクトリ "/src/myWebApp"
dotnet build "myWebApp.csproj" -c Release -o /app を実行します。

ビルドからパブリッシュへ
dotnet publish "myWebApp.csproj" -c Release -o /app を実行します。

ベースから最終へ
ワークディレクトリ /app
--from=publish /app にコピーします。
エントリポイント ["dotnet", "myWebApp.dll"] 

プロジェクト ディレクトリで、docker コマンド build を使用して、docker イメージ docker build -t aspnetdemo を生成します (aspnetdemo の後に . があり、これは dockerfile パスを示しています)。ここでは aspnetdemo イメージがビルドされます。Dockerfile を実行するのは初めてなので、いくつかの .net core 基本イメージをダウンロードする必要があり、自宅のインターネット速度が比較的遅いため、ダウンロード処理に時間がかかりました。

4. コンテナを起動する

3 番目のステップでは、イメージが作成されました。docker images を使用して作成されたイメージを確認し、docker run を使用してコンテナーを起動し、.net core アプリケーションを実行できます。

ブラウザに http://localhost:8080/ と入力すると、次のページが表示されます。

Microsoft の公式ドキュメントには、Windows コンテナーを使用する場合は、ブラウザーでコンテナーの IP アドレスに直接アクセスする必要があると記載されています。ここでは、-p を使用してポートをマップしているため、http://localhost:8080/ を直接入力してアクセスできます。

次に、ipconfig を使用してコンテナにマップされている docker ip を見つけ、ブラウザに docker ip を入力してアクセスします。

V. 要約

この記事では、Docker による ASP.NET Core アプリケーションのデプロイについて簡単に紹介しただけです。今後、.NET Core はデータベースや Redis などのコンテナーに接続する可能性があり、コンテナーの相互接続、コンテナー オーケストレーション技術、DevOps の継続的インテグレーションなどが含まれます。今後、大幅に拡張される可能性があり、これらについては後で学習できます。

以下もご興味があるかもしれません:
  • .Net Core は Docker コンテナを展開します
  • ASP.NET Core 開発 Docker デプロイ
  • DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします
  • .Net6 プロジェクトを Docker にデプロイする
  • Docker に .NET 5 をデプロイする方法
  • .Net Core で Docker を使用するための予備チュートリアル
  • .NETCore Dockerはコンテナ化とプライベートイメージリポジトリ管理を実装します
  • docker を使用して Asp.net コア アプリケーションをデプロイするための完全な手順
  • Docker を使用した .Net 開発と展開

<<:  MySQL 5.6 のインストール手順(画像とテキスト付き)

>>:  コードレイン効果を実現するjQueryプラグイン

推薦する

Linux ドライバ開発でよく使われる関数 copy_from_user open read write の詳細な説明

目次Linux ドライバーの共通機能 (copy_from_user open read write...

Linux で pyenv をインストールする方法

前提条件gitをインストールする必要があるインストール手順1. リモートリポジトリからpyenvをク...

MySQLクエリの文字セットの不一致の問題を解決する方法

問題を見つける最近、仕事で問題が発生しました。MySQL データベースにテーブルを作成するときに、ラ...

JavaScript Domはカルーセルの原理と例を実装します

カルーセルを作りたい場合、まずその原理を理解する必要があります。画像を右から左にスライドさせるにはど...

CSSアニメーションがJSによってブロックされるかどうかについての簡単な議論

CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...

画像ボタンをフォームのリセットボタンとして使用する方法

フォームを作成するときに、送信ボタンとリセットボタンを配置することがよくあります。ページの外観を考慮...

Linux で txt を mysql にインポートする方法

序文昨日、小さなプロジェクトを書いていたときに、txt ドキュメントのデータを mysql データベ...

Docker+nextcloudで個人用クラウドストレージシステムを構築

1. Dockerのインストールと起動 yum で epel-release をインストールします ...

iframe が HTML 内のページにジャンプするのを防ぎ、iframe を使用して WeChat Web バージョンをページに埋め込む方法

私は、WinForm と HTML5 を組み合わせた小さなものを作りたいだけなのですが、突然、そこに...

MySQL 5.7.18 リリース インストール ガイド (bin ファイル バージョンを含む)

インストール プロセスは、コンパイル手順を除いて、基本的にソース バージョンと同じです。この記事では...

Linuxでプロセスが占有するポート番号を表示する

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

CSSはスクロールを許可しながらスクロールバーを非表示にするためにオーバーフローを設定します

CSS は、スクロールを許可しながらスクロール バーを非表示にするために Overflow を設定し...

Linux でユーザーにルート権限を追加する方法の概要

1. ユーザーを追加します。まず、adduser コマンドを使用して共通ユーザーを追加します。コマン...

高品質なウェブページのデザイン方法 高品質なウェブページ(画像とテキスト)のデザイン経験

オープンプラットフォームの増加に伴い、そこから派生するさまざまなアプリケーションサービスも増加傾向に...

Brotli圧縮アルゴリズムを有効にするNginxの実装プロセスの詳細な説明

序文Web アプリケーションでは、トラフィックを節約し、転送データのサイズを縮小し、転送効率を向上さ...