來源:https://blog.csdn.net/notsaltedfish/article/details/80959913
Docker
Docker 這個東西所扮演的角色,容易理解,它是一個容器引擎,也就是說實際上我們的容器最終是由Docker創建,運行在Docker中,其他相關的容器技術都是以Docker為基礎,它是我們使用其他容器技術的核心。
Docker-Compose
Docker-Compose 是用來管理你的容器的,有點像一個容器的管家,想象一下當你的Docker中有成百上千的容器需要啟動,如果一個一個的啟動那得多費時間。有了Docker-Compose你只需要編寫一個文件,在這個文件里面聲明好要啟動的容器,配置一些參數,執行一下這個文件,Docker就會按照你聲明的配置去把所有的容器啟動起來,但是Docker-Compose只能管理當前主機上的多個Docker容器,也就是說不能去啟動其他主機上的Docker容器。
Docker Swarm
Docker Swarm 是一款用來管理多主機上的Docker容器的工具,可以負責幫你啟動容器,監控容器狀態,如果容器的狀態不正常它會幫你重新幫你啟動一個新的容器,來提供服務,同時也提供服務之間的負載均衡,而這些東西Docker-Compose 是做不到的
Kubernetes
Kubernetes它本身的角色定位是和Docker Swarm 是一樣的,也就是說他們負責的工作在容器領域來說是相同的部分,當然也有自己一些不一樣的特點。這個就像是Eclipse和IDEA一樣,也是一個跨主機的容器管理平台。它是Google公司根據自身的多年的運維經驗研發的一款容器管理平台。而Docker Swarm則是由Docker 公司研發的。
既然這兩個東西是一樣的,那就面臨選擇的問題,應該學習哪一個技術呢?實際上這兩年Kubernetes已經成為了很多大公司的默認使用的容器管理技術,而Docker Swarm已經在這場與Kubernetes競爭中已經逐漸失勢,如今容器管理領域已經開始已經逐漸被Kubernetes一統天下了。所以建議大家學習的時候,應該多考慮一下這門技術在行業里面是不是有很多人在使用。
需要注意的是,雖然Docker Swarm在與Kubernetes的競爭中敗下陣來,但是這個跟Docker這個容器引擎沒有太大關系,它還是整個容器領域技術的基石,Kubernetes離開他什么也不是。
總結
Docker是容器技術的核心、基礎;
Docker Compose是一個基於Docker的單主機容器編排工具;
Docker Swarm和Kubernetes是基於Docker的跨主機的容器管理平台,功能強大。