Docker 這個東西所扮演的角色,容易理解,它是一個容器引擎,也就是說實際上咱們的容器最終是由Docker建立,運行在Docker中,其餘相關的容器技術都是以Docker爲基礎,它是咱們使用其餘容器技術的核心。docker
Docker-Compose 是用來管理你的容器的,有點像一個容器的管家,想象一下當你的Docker中有成百上千的容器須要啓動,若是一個一個的啓動那得多費時間。有了Docker-Compose你只須要編寫一個文件,在這個文件裏面聲明好要啓動的容器,配置一些參數,執行一下這個文件,Docker就會按照你聲明的配置去把全部的容器啓動起來,可是Docker-Compose只能管理當前主機上的Docker,也就是說不能去啓動其餘主機上的Docker容器負載均衡
Docker Swarm 是一款用來管理多主機上的Docker容器的工具,能夠負責幫你啓動容器,監控容器狀態,若是容器的狀態不正常它會幫你從新幫你啓動一個新的容器,來提供服務,同時也提供服務之間的負載均衡,而這些東西Docker-Compose 是作不到的運維
Kubernetes它自己的角色定位是和Docker Swarm 是同樣的,也就是說他們負責的工做在容器領域來講是相同的部分,固然也有本身一些不同的特色。這個就像是Eclipse和IDEA同樣,也是一個跨主機的容器管理平臺。它是谷歌公司根據自身的多年的運維經驗研發的一款容器管理平臺。而Docker Swarm則是由Docker 公司研發的。工具
既然這兩個東西是同樣的,那就面臨選擇的問題,應該學習哪個技術呢?實際上這兩年Kubernetes已經成爲了不少大公司的默認使用的容器管理技術,而Docker Swarm已經在這場與Kubernetes競爭中已經逐漸失勢,現在容器管理領域已經開始已經逐漸被Kubernetes一統天下了。因此建議你們學習的時候,應該多考慮一下這門技術在行業裏面是否是有不少人在使用。學習
須要注意的是,雖然Docker Swarm在與Kubernetes的競爭中敗下陣來,可是這個跟Docker這個容器引擎沒有太大關係,它仍是整個容器領域技術的基石,Kubernetes離開他什麼也不是。ip
Docker是容器技術的核心、基礎,Docker Compose是一個基於Docker的單主機容器編排工具,功能並不像Docker Swarm和Kubernetes是基於Dcoker的跨主機的容器管理平臺那麼豐富。kubernetes