Dockerが利用するWindows ContainerとLinux Containerを切り替える
Created at:
Windows Containerを使う場合に、Docker for WindowsのインストーラをDockerのサイトからダウンロードしてきてインストールするとデフォルトではLinux Containerを使うようにセットアップされます。
その状態でWindows Containerのセットアップ手順に沿ってサービスを起動しようとすると以下のようなエラーが発生することがあります。
start-service : Failed to start service 'Docker Engine (docker)'.
アプリケーションのイベントログには以下のようなログが残ります。
fatal: open //./pipe/docker_engine: Access is denied.
これはLinux Container向けのエンジンと通信しようとするために発生しているようです。
PS C:\WINDOWS\system32> docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 60ccb22
Built: Thu Feb 23 10:40:59 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Experimental: true
解決方法
タスクトレイのアイコンのメニューから “Switch to Windows containers…”を選択することでWindows Containersを使うように変更できます。
PS C:\WINDOWS\system32> docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 60ccb22
Built: Thu Feb 23 10:40:59 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.24)
Go version: go1.7.5
Git commit: 60ccb22
Built: Thu Feb 23 10:40:59 2017
OS/Arch: windows/amd64
Experimental: true