2017-05-09 105 views
6

從我讀到的東西似乎多克 - 撰寫是創建一個單獨的主機上的多個集裝箱,而碼頭工人羣是一個工具,可以做同樣的事情的工具,而是具有更多的控制權,並在多臺主機與泊塢棧的幫助。我通過教程去了,也遇到了這個主題:Docker Compose對Docker Swarm和Docker Stack有什麼好處?

docker-compose.yml vs docker-stack.yml what difference?

我是來的結論是,我們沒有理由永遠使用多克爾 - 撰寫時,你可以使用多克羣與泊塢棧。他們甚至可以使用相同的docker-compose.yml。

看來,多克爾 - 撰寫的羣和堆棧,也許羣+堆棧的新的解決方案來之前讓撰寫過時,但它仍然遺留原因。這個想法是否正確?如果不是,Docker-Compose在開發或生產環境方面對Docker Swarm和Docker Stack有什麼好處?

+0

如果您正在使用超過「玩具」或樣品容器中工作,那麼你會發現撰寫文章的重量更輕(開始時間更快),並且需要的內存少於堆棧。當然,它也是一個單獨的安裝,我相信它是基於python的。只要有可能,我會選擇Stack - 它是內置的,可能會獲得更好的支持和更新的功能。 – JoeG

回答

5

似乎Docker-compose出現在swarm和stack之前,也許swarm + stack的新解決方案使得構建過時,但它仍然是遺留的原因。這個想法是否正確?

總之,是的。撰寫之前,所有的Swarm的東西(它起源於第三方實用工具,稱爲fig)。更糟糕的是,甚至有兩種不同的Swarms,舊的Swarm(一種獨立的工具)和Swarm Mode(Swarm Mode)(現在構建在docker二進制文件中)。

它似乎演變成服務和獲得內置於泊塢部署的概念。但是我會猜Docker Compose和Swarm Mode部署的東西會一起生活。

這也有利於知道多克爾撰寫基礎活出庫調用libcomposehttps://github.com/docker/libcompose)的其他第三方實用程序利用來支持docker-compose.yml文件格式部署(見牧場主和rancher-compose爲例)。我想他們會努力繼續支持libcompose

我不清楚泊塢窗羣部署的東西實際上使用libcompose。在我的粗略搜索,它會出現羣模式不實施libcompose和做自己的事。我不確定這與Docker Compose的未來如何相關,以及libcompose。解釋你認爲合適的...

+0

'docker stack deploy -c'中還有一些鍵還不支持,特別是'build',所以你必須預先構建鏡像。而且「docker stack deploy」需要Swarm部署到,即使它只是本地節點。也就是說,使用組合文件語法的docker stack deploy -c支持幾乎所有的功能,並支持'deploy'鍵。 –

3

從我發現:What's the difference between Docker Swarm, Docker Compose and Docker Newtorks?

泊塢撰寫是一個客戶端工具,讓您可以將多個組件

所以運行一個應用程序棧在我們的場景中,您將使用Docker Compose來實現。您將定義一個spec文件,您可以在其中定義爲每個組件構建容器的方式 - 數據庫,應用程序和Web層。你也可以指定這些如何相互作用。每個事件和許多其他事物有多少個實例。


Compose是一個用於定義和運行多容器Docker應用程序的工具。

泊塢羣是一個服務器端的功能,可以:

  • 甲羣是充當一個底層資源用於啓動多個容器搬運工節點(機器)的簇。可以在整個羣體中協調和部署服務。

您可以結合多個節點的羣集,然後發送「泊塢窗運行」命令,此羣集(其實到羣管理器節點)羣將處理調度(起點)此容器上的一個節點。

  • 允許在所有節點容器彼此

在查看官方文檔通信:Swarm mode overview & Docker Compose