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プラグイン

推薦する

Docker-compose を使用して ELK をデプロイするためのサンプル コード

環境ホストIP 192.168.0.9 Docker バージョン 19.03.2 docker-co...

JavaScript を使用して動的な QQ 登録ページを作成する

目次1. はじめに1. 基本レイアウト2. 写真を自動的に切り替える3. コンテンツを追加する4. ...

Vue ルーター vue-router 詳細説明ガイド

中国語ドキュメント: https://router.vuejs.org/zh/ Vue Router...

WeChatアプレットはシンプルなサイコロゲームを実装します

この記事では、サイコロゲームを実装するためのWeChatアプレットの具体的なコードを参考までに共有し...

州と市町村の連携を簡単に実現するJavaScript

この記事では、省と市の簡単な連携を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Centos 7 64 ビット デスクトップ バージョンのインストール グラフィック チュートリアル

システムが遅いと感じてソースを変更したい場合は、別の記事で整理しました https://blog.c...

WeChatアプレットがスネークゲームを実装

この記事では、参考までに、スネークゲームを実装するためのWeChatアプレットの具体的なコードを紹介...

JavaScript を使用して簡単なアルゴリズムを実行する方法

目次質問1件2つの方法3 実験結果と考察質問1件ご存知のとおり、 Pycharm 、 IDLE 、 ...

ウェブデザイナーが知っておくべき効率的なナビゲーションデザインの3つの原則

ウェブサイトのナビゲーションを設計することは、家の基礎を築くようなものです。基礎がしっかりしていなけ...

MySQL 8.0.16 圧縮版のダウンロードと Win10 システムへのインストール チュートリアル

公式サイトからダウンロード: https://www.mysql.com MySQLの公式サイトにア...

フレックスボックスレイアウトの最終行の左揃えの実装アイデア

フレックスレイアウトを使用すると、9つの正方形のグリッドであれば、図に示すように均等に分割できます。...

Mysql マスタースレーブレプリケーションの注意事項の説明

1. マスター'x@xxxx:x'への接続エラー- 再試行時間: 60 再試行回数:...

MySQL ビューの原理と基本操作例

この記事では、例を使用して、MySQL ビューの原理と基本操作を説明します。ご参考までに、詳細は以下...

Iframe Web ページのナビゲーション ウィンドウに関する簡単な説明

Iframe Web ページのナビゲーション ウィンドウに関する簡単な説明 Iframe ウェブペー...

MySQL テーブル フィールドの時間設定のデフォルト値

アプリケーションシナリオデータ テーブルでは、アプリケーションは各データがいつ作成されたかを記録する...