.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 コンテナーを使ってアプリケーションの開発を行う方法を学びます。