新しいビルドには dockerd --register-service|--unregister-service が追
加されていて、以前の NSSM および C:\ProgramData\docker\runDockerDaemon.cmd を使用したサービス登録 (Nano Server はスケジュールされたタスク)は使われなくなっています。
新しい手順と、古い手順でセットアップしたホストの更新手順をメモるんるん。
Windows Server 2016 TP5 をコンテナー ホストとしてセットアップする (新しい手順)
詳しくは... https://msdn.microsoft.com/en-us/virtualization/windowscontainers/deployment/deployment
役割と機能のインストール
PS C:> Install-WindowsFeature containers
PS C:> Install-WindowsFeature hyper-v
PS C:> Restart-Computer
Docker Daemon & Client のインストール
PS C:\> New-Item -Type Directory -Path 'C:\Program Files\docker\'
PS C:\> Invoke-WebRequest https://aka.ms/tp5/b/dockerd -OutFile $env:ProgramFiles\docker\dockerd.exe
PS C:\> Invoke-WebRequest https://aka.ms/tp5/b/docker -OutFile $env:ProgramFiles\docker\docker.exe
PS C:\> [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker", [EnvironmentVariableTarget]::Machine)
PS C:\> dockerd --register-service
PS C:\> Start-Service Docker
NAT スイッチ (オプションで Transparent スイッチ) の作成
既定で nat という名前であると思いますが、念のため確認。
PS C:\> docker network ls
詳しくは... https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/container_networking
TLS の有効化 (オプション)
C:\ProgramData\docker\config\daemon.json を作成し、次のように記述して上書き保存。公式ドキュメントは server-key.pem", となっていますが、最後の, は不要。
{
"hosts": ["tcp://0.0.0.0:2376", "npipe://"],
"tlsverify": true,
"tlscacert": "C:\\ProgramData\\docker\\certs.d\\ca.pem",
"tlscert": "C:\\ProgramData\\docker\\certs.d\\server-cert.pem",
"tlskey": "C:\\ProgramData\\docker\\certs.d\\server-key.pem"
}
PS C:\> Restart-Service Docker
PS C:\> netsh advfirewall firewall add rule name="Docker daemon " dir=in action=allow protocol=TCP localport=2376
ベース OS イメージのインストール
PS C:\> Install-PackageProvider ContainerImage -Force
PS C:\> Install-ContainerImage -Name WindowsServerCore
PS C:\> Install-ContainerImage -Name NanoServer
PS C:\> Restart-Service docker
イメージにタグを付ける
PS C:\> docker tag windowsservercore:10.0.14300.1000 windowsservercore:latest
PS C:\> docker tag nanoserver:10.0.14300.1010 nanoserver:latest
Nano Server をコンテナー ホストとしてセットアップする (新しい手順)
詳しくは... https://msdn.microsoft.com/en-us/virtualization/windowscontainers/deployment/deployment_nano
役割と機能のインストール
(NanoServer\Packages から Nano Server イメージ作成時、またはデプロイ後に Compute および Containers のパッケージを追加でもよい(と思う)。その場合、この手順はスキップ)
PS C:\> Install-PackageProvider NanoServerPackage
PS C:\> Install-NanoServerPackage -Name Microsoft-NanoServer-Containers-Package
Docker Daemon & Client のインストール
別の PC で https://aka.ms/tp5/b/docked と https://aka.ms/tp5/b/docker から dockerd.exe とdocker.exe をダウンロードして、NanoServerのC:\Windows\System32 にコピーする。
PS C:\> dockerd --register-service
PS C:\> Start-Service Docker
TLS の有効化 (推奨)
C:\ProgramData\docker\config\daemon.json を作成し、次のように記述して上書き保存。公式ドキュメントは server-key.pem", となっていますが、最後の, は不要。
{
"hosts": ["tcp://0.0.0.0:2376", "npipe://"],
"tlsverify": true,
"tlscacert": "C:\\ProgramData\\docker\\certs.d\\ca.pem",
"tlscert": "C:\\ProgramData\\docker\\certs.d\\server-cert.pem",
"tlskey": "C:\\ProgramData\\docker\\certs.d\\server-key.pem"
}
PS C:\> Restart-Service Docker
PS C:\> netsh advfirewall firewall add rule name="Docker daemon " dir=in action=allow protocol=TCP localport=2376
ベース OS イメージのインストール
PS C:\> Install-PackageProvider ContainerImage -Force
PS C:\> Install-ContainerImage -Name NanoServer
PS C:\> Restart-Service docker
イメージにタグを付ける
PS C:\> docker tag nanoserver:10.0.14300.1010 nanoserver:latest
Windows 10 Insider Preview をコンテナー ホストとしてセットアップする (新しい手順)
詳しくは... https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_10
機能のインストール
PS C:\> Enable-WindowsOptionalFeature -Online -FeatureName containers -All
PS C:\> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Docker Daemon & Client のインストール
PS C:\> New-Item -Type Directory -Path 'C:\Program Files\docker\'
PS C:\> Invoke-WebRequest https://aka.ms/tp5/b/dockerd -OutFile $env:ProgramFiles\docker\dockerd.exe
PS C:\> Invoke-WebRequest https://aka.ms/tp5/b/docker -OutFile $env:ProgramFiles\docker\docker.exe
PS C:\> [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker", [EnvironmentVariableTarget]::Machine)
PS C:\> dockerd --register-service
PS C:\> Start-Service Docker
ベース OS イメージのインストール
PS C:\> Install-PackageProvider ContainerImage -Force
PS C:\> Install-ContainerImage -Name NanoServer
PS C:\> Restart-Service docker
イメージにタグを付ける
PS C:\> docker tag nanoserver:10.0.14300.1010 nanoserver:latest
Docker クライアントだけをインストールする (新しい手順)
PS C:\> New-Item -Type Directory -Path 'C:\Program Files\docker\'
PS C:\> Invoke-WebRequest https://aka.ms/tp5/b/docker -OutFile $env:ProgramFiles\docker\docker.exe
PS C:\> [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker", [EnvironmentVariableTarget]::Machine)
・・・
更新されたDockerd.exe は、サービス登録機能が実装されていて、旧バージョンと違っているみたい。久しぶりに Docker コマンドで Windows Server コンテナーを動かしたら、どっか(Docker)動きがおかしくなっていたので気づきました。
Install-ContainerHost.ps1 でセットアップ済みのコンテナー ホストを更新された Dockerd.exe 対応にするには...
Windows Server 2016 TP5 と Windows 10 Insider Preview の場合
Docker Daemon サービスとバイナリの削除
C:\> net stop Docker
C:\> C:\Windows\System32\nssm remove docker
C:\> del C:\Windows\System32\dockerd.exe
C:\> del C:\Windows\System32\docker.exe
C:\> del C:\Windows\System32\nssm.exe
更新された Docker Daemon & クライアントのインストール
PS C:\> New-Item -Type Directory -Path 'C:\Program Files\docker\'
PS C:\> Invoke-WebRequest https://aka.ms/tp5/b/dockerd -OutFile $env:ProgramFiles\docker\dockerd.exe
PS C:\> Invoke-WebRequest https://aka.ms/tp5/b/docker -OutFile $env:ProgramFiles\docker\docker.exe
PS C:\> [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker",[EnvironmentVariableTarget]::Machine)
PS C:\> dockerd --register-service
PS C:\> Start-Service Docker
PS C:\> docker tag windowsservercore:10.0.14300.1000 windowsservercore:latest (Windows 10 の場合は不要)
PS C:\> docker tag nanoserver:10.0.14300.1010 nanoserver:latest (Hyper-V コンテナーをサポートしない場合は不要)
Nano Server の場合
Docker Daemon サービスとバイナリの削除
PS C:\> Get-Process dockerd|Stop-Process -Force
PS C:\> Unregister-ScheduledTask -TaskName Docker
PS C:\> Del C:\Windows\System32\Dockerd.exe
PS C:\> Del C:\Windows\System32\Docker.exe
更新された Docker Daemon & クライアントのインストール
別の PC で https://aka.ms/tp5/b/docked と https://aka.ms/tp5/b/docker から dockerd.exe とdocker.exe をダウンロードして、NanoServerのC:\Windows\System32 にコピーする。
PS C:\> dockerd --register-service
PS C:\> Start-Service Docker
PS C:\> docker tag nanoserver:10.0.14300.1010 nanoserver:latest
TLS のサポート (以前の C:\ProgramData\docker\runDockerDaemon.cmd は使用されません)
C:\ProgramData\docker\config\daemon.json を作成し、次のように記述して上書き保存。公式ドキュメントは server-key.pem", となっていますが、最後の, は不要。
{
"hosts": ["tcp://0.0.0.0:2376", "npipe://"],
"tlsverify": true,
"tlscacert": "C:\\ProgramData\\docker\\certs.d\\ca.pem",
"tlscert": "C:\\ProgramData\\docker\\certs.d\\server-cert.pem",
"tlskey": "C:\\ProgramData\\docker\\certs.d\\server-key.pem"
}
PS C:\> Restart-Service Docker
PS C:\> netsh advfirewall firewall add rule name="Docker daemon " dir=in action=allow protocol=TCP localport=2376
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。