Nano Server:20H2のDockerイメージに含まれる.NETのバージョンを調べる

2020年11月28日(土)

環境

.NET SDK 5.0をホスト環境にインストールする

Download .NETから.NET SDK x64をダウンロードする。

Download .NET

.NET SDK x64のインストーラーを実行する。

dotnet-sdk-5.0.100-win-x64.exe

.NETのバージョンを確認する。

$ dotnet --version
5.0.100
        

参考情報

Nano Server:20H2のDockerイメージで.NETのバージョンを調べる

Nano Server:20H2のDockerイメージを取得する。

Container Base ImageからNano Serverを選択する。Full Tag Listingにある20H2-amd64を試す。

$ cd C:\Temp\dotnet
$ docker pull mcr.microsoft.com/windows/nanoserver:20H2-amd64
        

イメージのサイズは262.83MBになっている。

mcr.microsoft.com/windows/nanoserver:20H2-amd64

Dockerfileを作成する。

C:\Temp\dotnet\DotNetVersions\Dockerfile
FROM mcr.microsoft.com/windows/nanoserver:20H2-amd64
WORKDIR /app
CMD [ "cmd", "/S", "/C", "dotnet", "--version" ]
          

Dockerイメージをビルドする。

$ cd C:\Temp\dotnet\DotNetVersions
$ docker build --tag nanoserver20h2-amd64:dotnetversions .
        
Nano Server 20H2-amd64 | DotNetVersions

Dockerイメージをコンテナとして実行する。"--detach"オプションでバックグラウンド実行にすると出力が表示されない。

$ cd C:\Temp\dotnet\DotNetVersions
$ docker run --name NanoServer-20H2-amd64-DotNetVersions nanoserver20h2-amd64:dotnetversions
'dotnet' is not recognized as an internal or external command,
operable program or batch file.
        

SDKが入っていないと"dotnet"コマンドがない。

参考情報

Nano Serverのフォルダ構造を確認する

Dockerfileを作成する。

C:\Temp\dotnet\DotNetVersions\Dockerfile
FROM mcr.microsoft.com/windows/nanoserver:20H2-amd64
WORKDIR /app
CMD [ "cmd", "/S", "/C", "dir", "C:\\" ]
          

Dockerイメージをビルドする。

$ cd C:\Temp\dotnet\DotNetVersions
$ docker build --tag nanoserver20h2-amd64:dotnetversions .
        

Dockerイメージをコンテナとして実行する。"--detach"オプションでバックグラウンド実行にすると出力が表示されない。

$ cd C:\Temp\dotnet\DotNetVersions
$ docker run --name NanoServer-20H2-amd64-DotNetVersions nanoserver20h2-amd64:dotnetversions
Volume in drive C has no label.
Volume Serial Number is B207-988E

Directory of C:\

11/27/2020  03:17 PM    <DIR>          app
11/06/2020  07:09 PM             5,510 License.txt
11/06/2020  07:11 PM    <DIR>          Users
11/27/2020  03:39 PM    <DIR>          Windows
              1 File(s)          5,510 bytes
              3 Dir(s)  21,303,934,976 bytes free
        

同様にして階層を辿った結果を示す。.NETは入っていないように思える。

C:\
  |-License.txt
  |
  +-Users
  |   +-ContainerAdministrator (File Not Found)
  |   +-ContainerUser (空フォルダ)
  |   +-Public (空フォルダ)
  |
  +-Windows
      +-AppCompat
      +-apppatch
      +-Branding
      +-DiagTrack
      +-Globalization
      +-INF
      +-L2Schemas
      +-LiveKernelReports
      +-PolicyDefinitions
      +-ServiceProfiles
      +-ServiceState
      +-System32
      +-SystemResources
      +-SysWOW64
      +-Temp
      +-WaaS