しばたテックブログ

気分で書いている技術ブログです。

Insider PreviewでのDockerイメージの取得方法

小ネタ、兼、備忘録です。

ちょっとWindows Server 2019 insider previewでWindows Server Containerを試す必要があり、Dockerイメージを取得するためにググったところVirtualization Blogのこんなエントリを見つけたので紹介します。

blogs.technet.microsoft.com

細かい話はこちらを見てください。

Dockerイメージのビルドバージョン

Windows Server ContainerとHyper-V Container(特にWindows Server Container)ではホストOSのバージョンとDockerイメージのOSバージョンを合わせておく必要があり、定期的に更新されるInsider previewではバージョンを合わせるのは結構面倒です。
このため上記のVirtualization Blogの内容は結構役に立つことになります。

一応補足としてバージョン間の互換性へのリンクを記載しておきます。

docs.microsoft.com

Insider previewでのDockerイメージ取得

基本的にはVirtualization Blogからの引用ですが、本エントリでは併せてServer Core Insider、Nano Server Insiderのイメージ取得コマンドも載せておきます。

# レジストリからOSビルドバージョンを取得し、バージョンタグを生成
$winver = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\'
$versiontag = "$($winver.CurrentMajorVersionNumber).$($winver.CurrentMinorVersionNumber).$($winver.CurrentBuildNumber).$($winver.UBR)"

# ホストバージョンと合わせた Windows 10 Insider Build?イメージの取得
docker pull mcr.microsoft.com/windows-insider:$versiontag

# ホストバージョンと合わせた Windows Sever Core Insider イメージの取得
docker pull mcr.microsoft.com/windowsservercore-insider:$versiontag

# ホストバージョンと合わせた Nano Server Insider イメージの取得
docker pull mcr.microsoft.com/nanoserver-insider:$versiontag

各イメージは、当初はDocker Hubにあった様ですが、いまはMicrosoft独自のレジストリであるmcr.microsoft.com*1から取得する必要があります。

このレジストリはUIが無くイメージの検索もできず詳細はよくわかりません...
ただ一部のイメージについてはDocker Hubに対応しているビルドバージョンが記載されているので参考としてリンクを貼っておきます。

ちなみに、イメージによっては名前に-insiderが付いていてもDocker Hubから取得する必要のあるイメージもありレジストリの完全移行はできていない様です。

今が過渡期なのか移行の予定がないのかははっきりしませんが、しばらくは不便な状況が続きそうなので我慢するしかないのかな、といったところです。

補足

もとのVirtualization Blogにしれっと出てるwindows-insiderイメージですが、こいつに関しては何気に情報がありません。
ざっと調べたところ山市さんのブログがヒットしましたが、こちらでもやっぱり謎の様です...

yamanxworld.blogspot.com

【2018/10/07追記】補足2

Microsoft Container Registry(mcr.microsoft.com)とwindows-insiderイメージについていくつか参考になる記事を見つけたのでリンクしておきます。

blogs.technet.microsoft.com

stefanscherer.github.io

細かい内容はリンク先で確認していただきたいのですが、ざっくり、

  • Microsoft Container Registryは新しいOSイメージ専用としている
  • windows-insiderイメージはOSの機能ほぼ全部入りのイメージで、例えばUIテストの自動化などといった自動化処理向けのイメージ

を押さえておけば良いかと思います。

*1:おそらくMicrosoft Container Registryと思われるが詳細不明。