Docker 三劍客 到 k8s 介紹

2022-06-24 22:03:18 字數 1629 閱讀 5894

docker-compose

docker-compose 是用來管理你的容器的,有點像乙個容器的管家,想象一下當你的docker中有成百上千的容器需要啟動,如果乙個乙個的啟動那得多費時間。有了docker-compose你只需要編寫乙個檔案,在這個檔案裡面宣告好要啟動的容器,配置一些引數,執行一下這個檔案,docker就會按照你宣告的配置去把所有的容器啟動起來,但是docker-compose只能管理當前主機上的docker,也就是說不能去啟動其他主機上的docker容器

單機上的容器編排

docker swarm

docker swarm 是一款用來管理多主機上的docker容器的工具,可以負責幫你啟動容器,監控容器狀態,如果容器的狀態不正常它會幫你重新幫你啟動乙個新的容器,來提供服務,同時也提供服務之間的負載均衡,而這些東西docker-compose 是做不到的

分布式多主機容器編排 監控

docker machine

docker技術是基於linux核心的cgroup技術實現的,那麼問題來了,如果在非linux平台上使用docker技術需要依賴安裝linux系統的虛擬機器。docker-machine就是docker公司官方提出的,用於在各種平台上快速建立具有docker服務的虛擬機器的技術。你可以把它理解為virtualbox或者vmware,最開始在win7上用得比較多,但是win10開始自帶了hyper-v虛擬機器,已經不再需要docker-machine了,docker可以直接執行在安裝了linux系統得hyper-v上。

docker-machine是解決docker執行環境問題。負責在多種平台上快速安裝 docker 環境

kubernetes它本身的角色定位是和docker swarm 是一樣的,也就是說他們負責的工作在容器領域來說是相同的部分,當然也有自己一些不一樣的特點。這個就像是eclipse和idea一樣,也是乙個跨主機的容器管理平台。它是谷歌公司根據自身的多年的運維經驗研發的一款容器管理平台。而docker swarm則是由docker 公司研發的。

既然這兩個東西是一樣的,那就面臨選擇的問題,應該學習哪乙個技術呢?實際上這兩年kubernetes已經成為了很多大公司的預設使用的容器管理技術,而docker swarm已經在這場與kubernetes競爭中已經逐漸失勢,如今容器管理領域已經開始已經逐漸被kubernetes一統天下了。

關於k8s去除docker

未來kubernetes實際要去除的是對現有docker執行時(docker daemon)的支援,通過去除了kubelet中docker shim來實現。這是kubernetes的一種標準化和簡化,同時,應該注意到docker實際在這些相關標準的制定中一直以來起著非常重要的作用。並且docker給出的相關參考實現,如containerd,runc將繼續被使用。

docker執行時1.20中只是deprecated而不是removed,即docker執行時可以正常使用。

即使在1.22版本kubelet移除docker shim後,docker 映象還是可以使用的(docker映象是符合oci的)

這個影響主要是運維和管理,對於開發的影響極小。即使要替換為podman,podman也是docker cli相容的。

reference

文字三劍客

檔案萬用字元和正規表示式 文字過濾工具grep linux系統中,一切皆檔案。強大的文字編輯和處理工具便必不可少了,在linux系統中,有文字處理三劍客 grep,sed,awk。在進行介紹三大工具前,我們先總結一下檔案萬用字元和正規表示式。檔案萬用字元主要就是對檔案的查詢進行檔名的模糊查詢,而正規...

三劍客 高階

awk 是一種程式語言,用於在linux unix下對文字和資料進行處理 awk 資料可以來自標準輸入,乙個或多個檔案,或其他命令的輸出 awk 通常是配合指令碼進行使用,是乙個強大的文字處理工具。01.進行逐行掃瞄檔案,從第一行到最後一行 02.尋找匹配的特定模式的行,在行上進行操作 03.如果沒...

物件導向三劍客

物件導向三把劍 封裝 繼承 多型 封裝 將資訊偽裝起來,內部封裝所有不變的 對外開放變化的 方法封裝,封裝複雜性,對外開放簡單方法 比如 屬性,可以讓外界刪除 修改,取值,那就開放 方法 把所有複雜邏輯封裝在方法裡。對外開放引數和返回值 繼承 顧名思義就是拿別人的東西為自己所用 有實現繼承,介面繼承...