簡單介紹:
docker是一個開源的應用容器引擎,開發者可以打包他們的應用以及依賴到一個容器中,發佈到流行的liunx系統上,或者實現虛擬化。也就是說實際上我們的容器最終是由Docker創建,運行在Docker中,其他相關的容器技術都是以Docker爲基礎,它是我們使用其他容器技術的核心
Docker-Compose 是用來管理你的容器的,有點像一個容器的管家,想象一下當你的Docker中有成百上千的容器需要啓動,如果一個一個的啓動那得多費時間。有了Docker-Compose你只需要編寫一個文件,在這個文件裏面聲明好要啓動的容器,配置一些參數,執行一下這個文件,Docker就會按照你聲明的配置去把所有的容器啓動起來,但是Docker-Compose只能管理當前主機上的Docker,也就是說不能去啓動其他主機上的Docker容器
Docker Swarm 是 Docker 的集羣管理工具。它將 Docker 主機池轉變爲單個虛擬 Docker 主機。 Docker Swarm 提供了標準的 Docker API,所有任何已經與 Docker 守護程序通信的工具都可以使用 Swarm 輕鬆地擴展到多個主機。可以負責幫你啓動容器,監控容器狀態,如果容器的狀態不正常它會幫你重新幫你啓動一個新的容器,來提供服務,同時也提供服務之間的負載均衡,而這些東西Docker-Compose 是做不到的
k8s是一個開源的容器集羣管理系統,可以實現容器集羣的自動化部署、自動擴縮容、維護等~它本身的角色定位是和Docker Swarm 是一樣的,也就是說他們負責的工作在容器領域來說是相同的部分,當然也有自己一些不一樣的特點。這個就像是Eclipse和IDEA一樣,也是一個跨主機的容器管理平臺。它是谷歌公司根據自身的多年的運維經驗研發的一款容器管理平臺。而Docker Swarm則是由Docker 公司研發的。
實際上這兩年Kubernetes已經成爲了很多大公司的默認使用的容器管理技術,而Docker Swarm已經在這場與Kubernetes競爭中已經逐漸失勢,如今容器管理領域已經開始已經逐漸被Kubernetes佔領了。所以個人建議還是考慮多學K8S
但是總體而言,docker 仍然是容器領域的技術基礎,所以學習k8s之前還是先掌握docker.