前回、Windows Server バージョン1709 の Hyper-V 環境を作りましたが(→Windows Server version 1709 と Windows 10 ver 1709 と Hyper-V)、続いてコンテナー環境も作ってみました。以下のように、Windows Server バージョン1709 ベースのコンテナー (microsoft/nanoserver:1709とmicrosoft/windowsservercore:1709)を Windows Server コンテナーまたは Hyper-V コンテナーとして実行できます。また、Windows Server 2016 ベースのイメージを Hyper-V コンテナーとして実行することもできました。Linux コンテナーに関してはまだプレビュー段階で、このとき(→速報:Hyper-V コンテナーで Linux コンテナーが動いた!)からそれほど状況に変化ないみたい。
手順は、以下の通りで大丈夫でした。(まだ Insider のドキュメントがありますが、そちらに惑わされないように!)
Windows Containers on Windows Server
[URL] https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server
具体的には...
Windows Server バージョン1709 のコマンドプロンプトを開いて、Hyper-V コンテナーをサポートするために Hyper-V を有効化 (これは前回実行済み)。
C:\> start powershell
PS C:\> Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Containers 機能と Docker バイナリのセットアップ。
C:\> start powershell
PS C:\> Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
PS C:\> Install-Package -Name docker -ProviderName DockerMsftProvider
PS C:\> Restart-Computer -Force
(10/22時点では Docker EE 17.06.1-ee-2 が最新)
Windows Server バージョン1709 ベースのイメージを取得。タグ :1709 を明示的に指定する必要があります。(これらで作成したコンテナーを実行できるのは Windwos Server バージョン1709 & Windows 10 ver 1709 のホストだけ!) 展開サイズ(ダウンロードサイズ)はそれぞれ 236MB(81.04 MB)、1.07GB (252.7 MB)で、nanoserver で lastest の 1/5 程度、windowsservercore で latest の 1/2 程度。
C:\> docker pull microsoft/nanoserver:1709
C:\> docker pull microsoft/windowsservercore:1709
Windows Server 2016 ベースのイメージを取得。タグ : latest は省略可。 (これらで作成したコンテナーを実行できるのは Windwos Server バージョン1709、Windwos Server 2016、Windows 10 ver 1607、Windows 10 ver 1703 のホスト)
C:\> docker pull microsoft/nanoserver:latest
C:\> docker pull microsoft/windowsservercore:latest
microsoft/nanoserver と microsoft/windowsservercore のリリース情報&タグ情報はこちら。(Windows Server 2016 ベースなど日本語版のイメージ:10.0.14393.1770_ja-jpがあることにいまさら気付くなど。)
[URL] https://hub.docker.com/r/microsoft/nanoserver/tags/
[URL] https://hub.docker.com/r/microsoft/windowsservercore/tags/
で、以下にすごく重要なことが書いてあるのですが、Windows Server バージョン1709 で Windows Server 2016 ベースのコンテナーは動く(Hyper-V コンテナーとして)けど、その逆はできません。Windows Server 2016 や Windows 10 1607、Windows 10 1703 の既存のコンテナー環境では、Windows Server バージョン1709 ベースのコンテナーはサポートされないってこと。
Container Images are now out for Windows Server version 1709!
[URL] https://blogs.technet.microsoft.com/virtualization/2017/10/18/container-images-are-now-out-for-windows-server-version-1709/
"It is important to note that while older versions of the base OS container images will work on a newer host (with Hyper-V isolation), the opposite is not true. Container images based on Windows Server version 1709 will not work on a host using Windows Server 2016."
"古いバージョンのベース OS イメージ(ver 2016、build 14393)は新しいホスト(ver 1709、build 16299)で動くよ(でも Hyper-V コンテナーでね!)、でもその逆はできないよ。Windows Server バージョン1709 ベースのコンテナーイメージは、Windows Server 2016 を使用するホストでは動かないよ!"古いベース OS イメージは --isolation=hyperv オプションを指定しないと、こんな感じでエラーに。
古いバージョンのホスト(以下の例は Windows 10 ver 1607 のコンテナー環境)で 1709 のベース OS イメージを取得しようとすると、こんなエラー。
"failed to register layer: re-ecec error: exit status 1: output: ProcessUtilityVMImage ... The system cannot find the path specified."
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。