區別:1、docker是一個開源的應用容器引擎,是運行環境的部署工具;而vagrant是開發環境的部署工具。2、docker適合用來管理應用環境,而Vagrant適合用來管理虛擬機。
本教程操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
Docker
Docker簡介
- Docker – HomePage
- Overview
Docker 是一個開源的應用容器引擎,基于 Go 語言并遵從 Apache2.0 協議開源。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
Docker的應用場景
- Web 應用的自動化打包和發布。
- 自動化測試和持續集成、發布。
- 在服務型環境中部署和調整數據庫或其他的后臺應用。
- 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平臺來搭建自己的 PaaS 環境。
Docker的優點
-
簡化程序:
Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。
Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。
方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的任務,在Docker容器的處理下,只需要數秒就能完成。 -
避免選擇恐懼癥:
如果你有選擇恐懼癥,還是資深患者。Docker 幫你打包你的糾結!
Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后臺應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。 -
節省開支:
云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。
Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
Vagrant
Vagrant簡介
Vagrant是一個可創建輕量級、高復用性和便于移植的開發環境的工具。
可以簡單理解為Vagrant拋棄開發環境中所有讓人頭痛的設置,而是用一個單一的配置文件來替代,并且可以選擇性地保留所需要的特性。
Vagrant默認使用Oracle開源的VirtualBox虛擬化系統,使用Chef創建自動化虛擬環境。
Vagrant的功能特性
- 支持快速新建虛擬機
- 支持快速設置端口轉發
- 支持自定義鏡像打包(原始鏡像方式、增量補丁方式)
- 基本上日常能用到的基礎配置都能快速設置
- 支持開機啟動自動運行命令
- 可以自己寫擴展
對比Docker與Vagrant
Vagrant是基于Virtualbox的虛擬機來構建你的開發環境,而Docker則是基于LXC(?LXC)輕量級容器虛擬技術。
Vagrant就是你的開發環境的部署工具;而docker是你的運行環境部署工具。
Vagrant適合用來管理虛擬機,而docker適合用來管理應用環境。
推薦學習:《docker視頻教程》