2021年1月3日日曜日

Docker DesktopでWindowsコンテナを使用してみました。ASP.NET Core(.NET5)

■Windowsコンテナ

最大のメリットは、Windowsアプリが動作することと思っています。
あとは、Azureの対応も手厚い。当然といえば当然です。
Windows/Linuxが動作して、Windowsなら、Windows/Windows Server Core/Nano Server/Windows 10 IoTが動作します。

Windowsを動かしてみた(Nano Server 1903)
docker pull mcr.microsoft.com/windows/nanoserver:1903
docker ps -l
CONTAINER ID   IMAGE                                       COMMAND     CREATED              STATUS              PORTS     NAMES
ecdf83311929   mcr.microsoft.com/windows/nanoserver:1903   "cmd.exe"   About a minute ago   Up About a minute             gifted_mcnulty

UsersディレクトリとWindowsディレクトリのみ
使用しているリソース状況は、主観ですが、まずまず。


次にアプリを動かしてみた(+ASP.NET Core)
docker build -t aspnetapp .
docker run -it --rm --name aspnetcore_sample aspnetapp
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
      Storing keys in a directory 'C:\Users\ContainerUser\AppData\Local\ASP.NET\DataProtection-Keys' that may not be persisted outside
of the container. Protected data will be unavailable when container is destroyed.
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://[::]:80
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\app
⇒Windowsコンテナは、PORT変換は必要ない。
appディレクトリとProgram Filesディレクトリが追加されている。
appディレクトリの直下はWebアプリがあります。

.NET5がインストールされている。



あと、ちとメモリを使いすぎていると思うけど、これって.NET5のせい?Windwosコンテナのせい?


Docker Desktopで確認するとファイル共有はない。永続化データの仕様は、名前付きボリュームを使用する。
あと、Windowsコンテナでは、Kurbanetesが出てこない。安心してAKSがあります。

あとは、コンテナのIPアドレスを確認して、
docker exec aspnetcore_sample ipconfig
Windows IP Configuration
Ethernet adapter Ethernet:
   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::3c4e:5abc:e710:f72a%4
   IPv4 Address. . . . . . . . . . . : 172.19.33.47
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . : 172.19.32.1
http://172.19.33.47
で起動する。

課題
一番の課題は、この起動方法で作成したコンテナのOSが不明です。
可能性があるのは、
Normal Nano Server
mcr.microsoft.com/dotnet/aspnet:5.0-nanoserver-20H2
Slim Nano Server
mcr.microsoft.com/windows/nanoserver:20H2
⇒2004, 1909, and 1809が選択可能です。
もしくは、
Normal Server Core
mcr.microsoft.com/dotnet/aspnet:5.0-windowsservercore-ltsc2019
Slim Server Core
mcr.microsoft.com/windows/servercore:ltsc2019
ですね。

docker ps
で確認してもわからない。
CONTAINER ID   IMAGE                                       COMMAND                  CREATED          STATUS          PORTS     NAMES
fd7a9de49db1   aspnetapp                                   "dotnet aspnetapp.dll"   20 minutes ago   Up 20 minutes             aspnetcore_sample
ecdf83311929   mcr.microsoft.com/windows/nanoserver:1903   "cmd.exe"                27 minutes ago   Up 27 minutes             gifted_mcnulty
docker 



















0 件のコメント:

コメントを投稿