---
# System prepended metadata

title: 在Win10建立虛擬機，並在虛擬中安裝`docker`

---

在Win10建立虛擬機，並在虛擬中安裝`docker`
===

## 執行環境

* Windows 10
* VirtualBox
* vagrant
* 虛擬機中安裝ubuntu 20.04 x64
* 必須啟動BIOS中Intel Virtualization Technology

## Windows 10環境準備

* 先檢查BIOS中是否有開啟VT-X
* 將Windows 10的HYPER-V關掉，進入`控制台`->`程式集`->`開啟或關閉Windows功能`->`Windows Hypervisor平台`一定要全部不打公。
* 同樣地方，`虛擬機器平台`也不能打勾。
* 下載Virtualbox https://www.virtualbox.org/
* 下載vagrant https://www.vagrantup.com/
* 安裝VirtualBox及vagrant
* 重新開機

## vagrant設定
1. 進入Windows Power Shell
2. 安裝外掛`vagrant plugin install vagrant-vbguest`
3. 檢視外掛`vagrant plugin list`
4. 更新外掛`vagrant plugin update`

## 建立虛擬機

* 進入powershell
* `cd ~`進入家目錄
* `mkdir docker_test`建立docker虛擬機目錄
* 初始化`vagrant init ubuntu/focal64`
* 開放port forwarding對應，把虛擬機的8080對到本機的9090
* `notepad Vagrantfile`
![](https://i.imgur.com/fHAouH4.png)
* `notepad Vagrantfile`將記憶體改成4GB
![](https://i.imgur.com/26jfiQw.png)
* `vagrant up`啟動虛擬機
* `vagrant ssh`進入虛擬機即完成。

## 安裝docker

* `sudo apt-get update`
* `sudo apt-get upgrade`
* `curl -fsSL https://get.docker.com -o get-docker.sh`
* `sudo sh get-docker.sh`
* `sudo groupadd docker`
* `sudo usermod -aG docker $USER`
* 要先離開環境再進去，`exit`之後再`vagrant ssh`，或是重新開機
* 檢查docker是否安裝成功`docker version`

## 如果沒有`docker`這個group
https://gist.github.com/mshRoR/555f26c2c9048030d1ae7b1770fae63f

```shell
vagrant@ubuntu-xenial:~$ docker version
Client: Docker Engine - Community
 Version:           19.03.2
 API version:       1.40
 Go version:        go1.12.8
 Git commit:        6a30dfc
 Built:             Thu Aug 29 05:28:19 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.2
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.8
  Git commit:       6a30dfc
  Built:            Thu Aug 29 05:26:54 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
 ```
* 執行`docker run -d --name web -p 8080:80 tutum/apache-php`。
* 進入Windows 10本機的瀏覽器，輸入`localhost:9090`，出現下圖表示成功

![](https://i.imgur.com/Oshc14R.png)
 
