如何在 Parallel Desktop 使用 Docker for Mac ?
雖然平時以 macOS 作為開發主力,偶爾還是會需要在 Parallel Desktop 使用 Windows,此時若要使用 Docker,雖然也能在 Parallel Destop 內跑 Docker for Windows,不過由於是 VM 中的 VM,Docker 並不穩定,比較建議的方式是 Windows 搭配 Docker for Mac 使用。
Version
macOS High Sierra 10.13.6
Docker for Mac 18.06.0-ce-mac70 (26399)
PostgreSQL 10.4
Parallel Desktop 13 Pro 13.3.2 (43368)
Windows 10 Pro 1803 17134.191
Rider 2018.1.3
Docker for Mac
1 | $ docker-compose up -d |
在 macOS 以 docker-compose
啟動 PostgreSQL container,且 port 為 1234
。
由於將來 Parallel Desktop 內的 Windows 將連到 macOS 的 PostgreSQL container,目前已知其 port 為 1234
,但 IP 是多少呢 ?
Parallel Desktop Network
Parallel Desktop 預設的 network 是以 Shared Network
方式。
什麼是 Shared Network
呢 ?
上圖中的 Mac 有 192.168.0.20
與 10.211.55.10
兩個 IP
。
而 Windows 的 IP 則為 10.211.55.20
。
簡單的說相當於 Mac 有兩張網卡,一張網卡為 192.168.0.20
,而另一張網卡為 10.211.55.10
,而 Windows 的 10.211.55.20
與 Mac 的 10.211.55.10
為同一個網段,可彼此互通,然後再透過 192.168.0.20
這張網卡連上 internet。
我們可發現 Parallel Desktop 自帶 DHCP,且 IP 從 10.211.55.1
開始到 10.211.55.254
。
當 Parallel Desktop 啟動後,實際在 macOS 下 ifconfig
觀察,會發現多了 vinc0
這張網卡,其 IP 為 10.211.55.2
。
也就是說若要從 Parallel Desktop 的 Windows 連到 PostgreSQL container,IP 就是 10.211.55.2
,port 為 1234
。
Windows
- 在 Windows 內的 Rider 能夠以
10.211.55.2 : 1234
連到 Docker for Mac 的 PostgreSQL container
Conclusion
- Parallel Desktop 都會穩定以
10.211.55.2
當成 macOS 的 IP,所以任何 Docker container 都可以跑在 macOS,然後 Windows 再以10.211.55.2
連上即可,這樣就不需要執行 Docker for Windows 了
Reference
Parallels, Which networking mode (Bridged, Shared or Host-Only) should I use for the virtual machine?