[メモ] "ubuntu:16.04" on "Docker" on "Hyper-V" on "Windows 10 Pro(VM)" on "VMwarePlayer" on "Windows 10(PM)"

![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/4a799844-f4d0-086e-9db1-ff205644e353.png)


# 概要
- "Ubuntu" on "Docker" on "Hyper-V" on "Windows 10 Pro(VM)" on "VMwarePlayer" on "Windows 10(PM)"<br>=> Windows 10(物理マシン)上の、VMwarePlayer上の、Windows 10 Pro(仮想マシン)の、Hyper-V(のLinux)で、Dockerのubuntu:16.04 コンテナを動かす。
- Nested Virtualizationを使用するメモで、VMware上のWindowsで、Hyper-Vを使ってみる、ついでにDockerという感じ...

	```txt:.vmxファイルに追記する
	hypervisor.cpuid.v0 = "FALSE"
	mce.enable = "TRUE"
	vhu.enable = "TRUE"
	```
- Docker for Windowsは、chocolateyパッケージマネージャで、インストール。
- Windowsコンテナ(microsoft/nanoserver)も動いたよ

# 環境
- ホスト機: i7-4790 / 32GB / Win10 64bit
- 仮想機: Win10Pro (ライセンス有)

# 手順

## VMware Workstation 14 Playerのインストール
- 普通にインストールしてください...

## 仮想んマシンの設定・準備
1. 仮想マシン作成. Create a New Virtual Machine<br>![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/75f52e7b-2a66-0ec9-b0e3-fd46e74c9e2f.png)
2. Disc Imageを選択 (Win10 1709の日本語ISO)<br>![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/ce8191f3-f9e9-12d0-f733-516608b84c1c.png)
3. 名前と場所<br> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/9af360ef-c03d-9136-1e50-2eacb30d35b2.png)
4. ディスクサイズと形態(お好みで)<br>![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/f93a3b99-9cee-e15f-5ee4-25f7cac32fa0.png)
5. Custumize Hardware...を押す<br>![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/b3881df0-2064-e1dc-4e15-74d385002fd1.png)

6. 構成を変更

	Memory: 8GB (8192MB)
	Processors: 2
	  [✔] Virtualize Intel VT-x/EPT or AMD-v/RVI
	  [✔] Virtualize CPU performance counters
	Network Adapter: Bridged
	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/9e173363-3615-d9cf-8c3c-b55d2c1d7187.png)


7. Power in this virtual machine after creationのチェックを外して、[Finish]<br>![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/399cf2ce-f44d-e413-c6ae-b1b020fb941d.png)

8. 一旦、VMware WS Playerを閉じる
9. VMのフォルダの中の、`Win10Prox64JPN.vmx`をテキストエディタで開いて、以下を最後に追加

	```txt:Win10Prox64JPN.vmx
	hypervisor.cpuid.v0 = "FALSE"
	mce.enable = "TRUE"
	vhu.enable = "TRUE"
	```


## 仮想マシンへ、Windows 10 Pro 64bitのインストール
- 普通にインストールする。
1. 起動

	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/da124b68-ca4f-236c-da84-35996ac492fd.png)

2. キーボードなど選択して

	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/881897cc-a596-46c8-cf32-f279111e3be7.png)

3. Proじゃないと、Hyper-Vが使えない

	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/84b04182-5a4b-8da9-e67d-c6f73ebdd185.png)

4. お住まい... などきかれて、

	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/bb2cd885-d57f-8ac6-72b4-288d690ae413.png)

5. なんやかんやで、インストール終了

	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/fc3509cc-3159-1c77-b39a-c67c8753a654.png)


### VMWare Toolsのインストール
1. 下のほうの Install Toolsを押す、か、Player => Manage => Install VMWare Tools... 

    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/60a3d96c-84fa-6456-5977-15034f304a35.png)
2. セットアップを開始して、次へを押しまくる

    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/ba55865c-04c0-c76c-86a3-0895a361578c.png)

3. インストール後再起動


## Docker for Windowsのインストール

### Chocolateyのインストール

1. PowerShellを管理者で開く
![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/b6e01392-0bb3-7d7f-871a-b6e4c2e6d36b.png)

2. 以下ぴぺ

    ```txt:コピペ
    Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object 
    System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
    ```

    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/1eada66a-cc35-b6be-8b01-0f91630d6890.png)

	<!--
	cmdを管理者で開く
	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/69d587a7-36e4-b6ec-6a8a-b439fd72aa1e.png)

	```
	@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
	```
	-->


3. Docker for Windowsのインストール

	```txt
	cinit -y docker-for-windows
	```

	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/c0eae177-c60e-bc33-8a23-b142920f8ac3.png)
	![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/735dc5dd-46a0-3da6-db82-83d4d4bc1283.png)

4. Docker for Windowsをダブルクリックすると、ログオフしないといけない、というので、再起動する

    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/f8fa438d-f531-75f3-e94f-0b81d39a1b9d.png)

    再起動: `shutdown -r -t 0`

5. 自動で、Dockerが起動されるが、Hyper-VとContainersの機能が有効になってないから、有効にするよ？ <br>=>[OK]をおす
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/cfc4b54c-ccb6-d4b3-2267-5e77f14570ae.png)
    => 自動で再起動される

6. ログオン後、`Docker is running` になる
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/d110f5e0-b8c8-8002-ec10-f23f1f875660.png)

7. PowerShellをひらいて、Hello World => `docker run -it --rm hello-world`
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/35870414-e637-7910-a07f-043c15ff9b08.png)


## ubuntu:16.04コンテナの実行

- `docker run -it --rm ubuntu:1604`
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/4a799844-f4d0-086e-9db1-ff205644e353.png)

## microsoft/nanoserver コンテナの実行
1. 通知領域のクジラアイコンを右クリックして、Switch to Windows containers...
2. PowerShellをひらいて、
    - `docker run -it --rm microsoft/nanoserver`

    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/a7a2cd4c-d135-7630-556f-169e8594c961.png)
　

3. Windowsコンテナモードのときに、Linuxコンテナを使用しようとすると、、、エラー。逆もまた然り。
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75594/a222ba82-f1d5-0306-f631-11eae71dd991.png)