質問: | ホストOS | ゲストOS | | --- | --- | | Mac OS X 10.14.5(Mojave) | Windows 10 Pro(64bit) | | VirtualBox ver | 準仮想化インターフェイス | | --- | --- | | 6.0.8 r130520 | なし | 実現したいこと ------- * Windows 10 Pro 上で Docker を稼働させ、Postgresコンテナが動作することを確認したい。 現状 -- 以下のissueを元に、Docker Desktopについては 18.03.1.17513 をインストールしております。 Docker not switching to Linux containers on Windows 10 ``` C:\Users\Docker4Win>docker version Client: Version: 18.03.1-ce API version: 1.37 Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:12:48 2018 OS/Arch: windows/amd64 Experimental: false Orchestrator: swarm error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.37/version: open //./pipe/docker_engine: The system cannot find thefile specified.In the default daemon configuration on Windows, the docker client must be run elevated to connect.This error may also indicate that the docker daemon is not running. ``` また、Windows10Pro上では、Hyper-V 及び コンテナ機能を有効化し、再起動済みです。 ![Windowsの機能の有効化または無効化](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/090f75bb5971c7dcacde6e318868df9d.png) さらに、Windows セキュリティの [アプリとブラウザーコントロール] から C:¥Windows¥System32¥vmcompute.exe の制御ガードフローも無効化済みです。 ![CFG無効化](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/004267a7fbd4fd8a8cc9787d8a01bb45.png) この状態で、インストール済みのDocker Desktop for Windowsを "管理者として実行" すると次の画像のように コンテナ昨日の有効化を促すメッセージが表示されてしまいます。 ![DockerError01](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/eb3a03c6339fc4c31bdcd45a5fbc4f74.png) Docker経由での有効化を許可するため、[OK]を選択すると次の画像のエラーとなります。 ![DockerError02](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/7d796b4bb140dfa1e0707c50db8f7d72.png) 上記のように、「コンテナ機能は有効化済みだが、Dockerが設定を有効化しようとして失敗し、正常に起動できずに終了する」という状態です。 解決策をご存知の方がいらっしゃいましたら、ご教示お願いしますm(_ _)m
回答: Mac上のVMでわざわざDocker for Windowsの検証をやる意味がよくわかりませんが、Docker for WindowsはDockerのホストにHyper-Vを使うため、ネストされた仮想化環境になってしまいます。 で、VirtualBoxのNested virtualizationの機能を使ったことはないですが、これとかこれを読む限りAMD系のCPUじゃないと使えない気が。