Visual Studio for Mac の Docker サポートを使ってみて調べたこと。
やりたいこと
- Docker サポートで実行したコンテナを停止・削除したい
環境
- macOS Catalina 10.15.5
- Visual Studio for Mac 8.6.2
- Docker Desktop for Mac 2.3.0.2
やってみた
Docker サポートを使ったことがなかったのでお試し。
- ASP.NET Core で API ソリューションを作成
- 作成したプロジェクトに「Docker サポートを追加」
- ビルド&実行
Dockerfile や docker-compose.yml を書かず、これだけで出来ちゃう。ものすごく簡単。
コンテナが停止できない
だけど、Visual Studio のデバッグを停止してもコンテナは動いたまま。
docker-compose down
しても効果なし。
状態を確認してみると
dockercompose12345678901234567890_default
のようなネットワークが構成されていた。
ネットワーク名はどうやって決まる?
Docker のドキュメントを参照すると、「アプリケーション用のネットワークには、プロジェクト名と同じ名前が割り当てられる」とのこと。
http://docs.docker.jp/compose/networking.html
ということは、プロジェクト名が
dockercompose12345678901234567890
になっていると思われる。
Visual Studio 実行時のプロジェクト名
Visual Studio の Docker サポートを利用して実行した場合、「dcprojの拡張子なしのファイル名 + ワークスペースディレクトリの非暗号化ハッシュ」がプロジェクト名になるらしい。
https://github.com/microsoft/DockerTools/issues/171
Visual Stuido で docker-compose が実行されたときに、プロジェクト名が指定されているようだ。
コンテナの停止
docker-compose down の際にプロジェクト名を指定してあげると、無事にお掃除できた。
docker-compose -p dockercompose12345678901234567890 down