Docker
Docker 這個東西所扮演的角色,容易理解九榔,它是一個容器引擎哀峻,也就是說實際上我們的容器最終是由Docker創(chuàng)建,運行在Docker中哲泊,其他相關(guān)的容器技術(shù)都是以Docker為基礎(chǔ)剩蟀,它是我們使用其他容器技術(shù)的核心。
Docker-Compose
Docker-Compose 是用來管理你的容器的切威,有點像一個容器的管家育特,想象一下當(dāng)你的Docker中有成百上千的容器需要啟動,如果一個一個的啟動那得多費時間。有了Docker-Compose你只需要編寫一個文件缰冤,在這個文件里面聲明好要啟動的容器犬缨,配置一些參數(shù),執(zhí)行一下這個文件棉浸,Docker就會按照你聲明的配置去把所有的容器啟動起來怀薛,只需docker-compose up即可啟動所有的容器,但是Docker-Compose只能管理當(dāng)前主機(jī)上的Docker迷郑,也就是說不能去啟動其他主機(jī)上的Docker容器
Docker Swarm
Docker Swarm 是一款用來管理多主機(jī)上的Docker容器的工具枝恋,可以負(fù)責(zé)幫你啟動容器,監(jiān)控容器狀態(tài)嗡害,如果容器的狀態(tài)不正常它會幫你重新幫你啟動一個新的容器焚碌,來提供服務(wù),同時也提供服務(wù)之間的負(fù)載均衡霸妹,而這些東西Docker-Compose 是做不到的
Kubernetes
Kubernetes它本身的角色定位是和Docker Swarm 是一樣的十电,也就是說他們負(fù)責(zé)的工作在容器領(lǐng)域來說是相同的部分,都是一個跨主機(jī)的容器管理平臺叹螟,當(dāng)然也有自己一些不一樣的特點摆出,k8s是谷歌公司根據(jù)自身的多年的運維經(jīng)驗研發(fā)的一款容器管理平臺。而Docker Swarm則是由Docker 公司研發(fā)的首妖。
既然這兩個東西是一樣的,那就面臨選擇的問題爷恳,應(yīng)該學(xué)習(xí)哪一個技術(shù)呢?實際上這兩年Kubernetes已經(jīng)成為了很多大公司的默認(rèn)使用的容器管理技術(shù)有缆,而Docker Swarm已經(jīng)在這場與Kubernetes競爭中已經(jīng)逐漸失勢,如今容器管理領(lǐng)域已經(jīng)開始已經(jīng)逐漸被Kubernetes一統(tǒng)天下了温亲。所以建議大家學(xué)習(xí)的時候棚壁,應(yīng)該多考慮一下這門技術(shù)在行業(yè)里面是不是有很多人在使用。
需要注意的是栈虚,雖然Docker Swarm在與Kubernetes的競爭中敗下陣來袖外,但是這個跟Docker這個容器引擎沒有太大關(guān)系,它還是整個容器領(lǐng)域技術(shù)的基石魂务,Kubernetes離開他什么也不是曼验。
總結(jié)
Docker是容器技術(shù)的核心、基礎(chǔ)粘姜,Docker Compose是一個基于Docker的單主機(jī)容器編排工具.而k8s是一個跨主機(jī)的集群部署工具鬓照,功能并不像Docker Swarm和Kubernetes是基于Dcoker的跨主機(jī)的容器管理平臺那么豐富