kharuka2016のブログ

日々の出来事を書き留めておくブログ

はじめてのWindows Serverコンテナ

1.OneGet PowerShell モジュールをインストールします

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

2.OneGet を使用して最新バージョンの Docker をインストールします。

Install-Package -Name docker -ProviderName DockerMsftProvider

3.コンピューターを再起動します。

Restart-Computer -Force

4.Nano Server 基本イメージをインストールします。

docker pull microsoft/nanoserver

開始早々エラーが出て心が折れかけました。

Using default tag: latest
Get https://registry-1.docker.io/v2/microsoft/nanoserver/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Amicrosoft%2Fnanoserver%3Apull&service=registry.docker.i:  x509: certificate signed by unknown authority

でもこんな便利なものを発見。

Invoke-WebRequest https://aka.ms/Debug-ContainerHost.ps1 -UseBasicParsing | Invoke-Expression

参考:

docs.microsoft.com

Docker is registered in the EventLog serviceでエラーが出ているためレジストリを確認し修正しました。 一つ目のエラーは無事解決!

コマンドプロンプトで以下コマンドを実行しレジストリの編集画面を開きます。 編集前にレジストリのエクスポートも忘れずにしましょう。

regedit

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\docker]

“CustomSource”=dword:00000001

“EventMessageFile”=“C:\Program Files\docker\dockerd.exe”

“TypesSupported”=dword:00000007

参考:

github.com

残りのエラーに取り掛かります。

C:\Program Files\Docker\docker.exe: Error response from daemon: Get https://registry-1.docker.io/v2/: x509: certificate signed by unknown authority.

プロキシの設定をします。

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://hatena.co.jp:8080/", [EnvironmentVariableTarget]::Machine)
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "https://hatena.co.jp:8080/", [EnvironmentVariableTarget]::Machine)

参考:

docs.microsoft.com

以下エラーはhttpsのプロキシ設定ができていないだけでした。 こちらのエラーでは心が折れていました。

Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: tls: oversized record received with length 28001.

なんとかnanoserverのプルまでこぎつけました。

5.プルしたイメージを確認します。

docker images

6.Nano ServerをWindowsコンテナで起動して、コマンドプロンプトを開きます。

docker run -it microsoft/nanoserver cmd

7.powershellを起動します。

powershell

8.Nano Serverの状態などを確認します。

Get-ComputerInfo

9.コンテナを終了します。

exit

参考:

docs.microsoft.com

www.atmarkit.co.jp