.NET アプリケーションのコンテナー化

前提条件

  • Docker Desktop の最新バージョンをインストールしていること。
  • git クライアント が利用可能であること。 本節の利用例ではコマンドラインベースの git クライアントを用いていきますが、別のクライアントを用いてもかまいません。

概要

本節では .NET アプリケーションをコンテナー化して実行する手順を示していきます。

サンプルアプリケーションの入手

このガイドでは、あらかじめビルドされている .NET アプリケーションを利用します。 このアプリケーションは、Docker Blog 記事 Building a Multi-Container .NET App Using Docker Desktop においてビルドしているアプリケーションと同等のものです。 .

端末画面を開いて、作業を行うディレクトリに移動します。 そして以下のコマンドを実行してリポジトリをクローンします。

$ git clone https://github.com/docker/docker-dotnet-sample

Docker アセットの初期化

アプリケーションを入手できたので、アプリケーションのコンテナー化に向けて docker init を実行し、必要な Docker アセットを生成します。 端末上から docker-dotnet-sample ディレクトリに移動して docker init コマンドを実行します。 docker init はデフォルトの設定を生成していくものであり、アプリケーションに対する質問が出されるのでこれに答えていきます。 以下の例における docker init への回答プロンプトを参考にして、同様の回答を行ってください。

$ docker init
Welcome to the Docker Init CLI!

This utility will walk you through creating the following files with sensible defaults for your project:
  - .dockerignore
  - Dockerfile
  - compose.yaml
  - README.Docker.md

Let's get started!

? What application platform does your project use? ASP.NET Core
? What's the name of your solution's main project? myWebApp
? What version of .NET do you want to use? 6.0
? What local port do you want to use to access your server? 8080

上により docker-dotnet-sample ディレクトリ内は以下の内容となるはずです。

├── docker-dotnet-sample/
│ ├── .git/
│ ├── src/
│ ├── .dockerignore
│ ├── compose.yaml
│ ├── Dockerfile
│ ├── README.Docker.md
│ └── README.md

docker init が追加した各ファイルについての詳細は以下を参照してください。

アプリケーションの実行

端末画面内の docker-dotnet-sample ディレクトリから以下のコマンドを実行します。

$ docker compose up --build

ブラウザーを開いて http://localhost:8080 にアクセスしてアプリケーションを確認します。 単純なウェブアプリケーションが表示されたはずです。

端末画面から ctrl+c を押下してアプリケーションを停止します。

バックグラウンドでのアプリケーション実行

アプリケーションは端末から切り離して実行することができます。 それには -d オプションをつけます。 端末画面内の docker-dotnet-sample ディレクトリから以下のコマンドを実行します。

$ docker compose up --build -d

ブラウザーを開いて http://localhost:8080 にアクセスしてアプリケーションを確認します。 単純なウェブアプリケーションが表示されたはずです。

端末画面から以下のコマンドを実行してアプリケーションを停止します。

$ docker compose down

Compose コマンドの詳細は Compose CLI リファレンス を参照してください。

まとめ

本節では Docker を使って .NET アプリケーションをコンテナー化して実行する方法について学びました。

関連情報

次のステップ

次の節では、Docker コンテナーを使ってアプリケーションの開発を行う方法を学びます。