---
# System prepended metadata

title: Dock與VM

---

#    Dock與VM
Docker 和虛擬機器 (VM) 是應用程式部署中採用的兩種技術。
##    虛擬機器
虛擬機器 (VM) 提供整個機器 (伺服器) 的虛擬化。虛擬機器會模擬實體機器的硬體元件，例如 CPU、記憶體、網路界面卡、USB 控制器和音效卡。您可以在虛擬環境中執行客體作業系統和多個應用程式。 

##    Docker
Docker 可讓您在任何作業系統上執行應用程式。其使用稱為容器的隔離使用者空間執行個體。

Docker 容器具有自己的檔案系統、相依性結構、程序和網路功能。應用程式在容器內具備所需的一切，並且可以在任何地方執行。Docker 容器技術會直接使用基礎主機作業系統核心資源。 

##    兩者的相似與不同
### 相似
####    映像
Docker 容器和虛擬機器都是從映像建立的。每個映像都是虛擬化環境的設定。映像可讓使用者建立和共用一致的環境，而不需要每次都進行設定。

####    版本控制
Docker 容器映像和虛擬機器映像都可以進行版本控制，以追蹤一段時間內的環境組態變更。


####    可攜性
虛擬機器和 Docker 的設計目的都是為了解決必須針對不同類型的基礎架構開發不同應用程式組態的難題,都可以跨架構高度可攜。

##    不同
虛擬機器設計的目的是讓多個作業系統在單一實體機器上執行。目標是讓使用者建立與基礎硬體隔離的虛擬環境。VM 會抽象化硬體詳細資訊，讓您更輕鬆地在不同硬體架構上執行應用程式，並且更有效率地使用硬體資源。

Docker 則是旨在提供一種輕量型且便於攜帶的方式，在隔離且可重現的環境中封裝和執行應用程式。Docker 會抽象化作業系統詳細資訊，以解決在不同環境 (例如開發、測試和生產等環境) 部署應用程式時所面臨的挑戰。Docker 透過容器化解決這個問題。 

結論:VM 可讓您在任何硬體上執行虛擬機器。Docker 可讓您在任何作業系統上執行應用程式。
