2013-12-16 76 views
24

我已閱讀thisintro docs on Docker.io,我喜歡它提供的概念。但是,你能幫助我更好地理解它嗎?你能給我一些關於如何使用Docker的實際例子和/或案例研究,以及實際使用Docker的意義嗎?我剛剛開始使用Vagrant向我們的開發團隊分發預配置的DEV盒(所以我們都使用相同的基本系統)。我甚至看到了在Vagrant內部使用Docker的例子,但是我沒有從實際意義上得到什麼好處。這意味着我瞭解虛擬機和容器之間的區別以及後者提供的邏輯分隔,但是何時應該使用其中的一個而不是其他時間,並且當Docker 內部有 Vagrant? (這是一個更具體的問題,但我最感興趣的是上面第一個問題中提到的大局)。你能解釋一個實例/案例的Docker嗎?

+1

那個流浪漢DOCO具有使用泊塢作爲供應者節:http://docs.vagrantup.com/v2/provisioning/docker.html –

+0

是這裏提出的更大的問題不是「太寬泛」的定義嗎?對於這種形式的問題,一個典型的答案是不可能的,並且問題需要允許在這裏允許這樣的答案。 –

回答

2

有一個很好的碼頭工人劈日常使用的情況下:用Git和詹金斯一個Java堆棧的

自動部署。您將代碼推送到您的contenairezied git存儲庫中。它會觸發一個Jenkins構建,這樣你的webapp將被打包到一個Container Docker中,並由Docker運行。

https://www.youtube.com/watch?v=Q1l-WoJ7I7M

21

我參與,努力使軟件做科學的分析,更提供給研究界。通常情況下,所討論的軟件是由一個人編寫的,或者只是少數人編寫而沒有足夠的重用計劃,例如一個人在他們自己的計算機上編寫Python腳本或Matlab模塊。如果軟件運行良好,其他人通常會自己嘗試......但在某些情況下,成功複製無證或難以重新實現的環境可能是一個真正的挑戰。

Docker是一個很好的工具,可以幫助其他人重複使用這樣的軟件,因爲編寫Vagrant腳本在環境中安裝軟件的入口門檻更低。如果我給一個人一個Docker容器,她可以在裏面做任何她想做的事情(編寫代碼,安裝庫,設置環境等等。當它「完成」時,她可以保存它的圖像並將圖像發佈到Docker知識庫,並告訴另一位研究人員,「在這裏,只需啓動它並運行此...」

我們也在考慮使用容器作爲我們自己的配置管理策略來交付和存檔生產軟件......至少服務器端組件

我們在Python和shell中編寫腳本來運行多個Docker容器的數據處理工作流也做了一些工作我們炮製的一個演示是在圖像上運行OpenCV以提取人臉,然後ImageMagick來裁剪臉部,最後ImageM再次挑戰以製作所有面孔的拼貼畫。我們爲OpenCV創建了一個容器,併爲ImageMagick創建了一個容器,然後編寫了一個Python腳本來執行每個具有必要參數的容器上的「docker run ...」。 Python腳本是使用docker-py項目完成的,該項目非常適合我們所需的項目。

8

查看案例研究「how and why Spotify uses Docker」。

要回答你的最後一個問題:

我甚至曾經見過泊塢窗使用內部流浪漢, 諸如此類的例子,但我沒有得到什麼在 實際意義上做到這一點的好處;這意味着我理解虛擬機 和容器之間的區別以及後者提供的邏輯分隔,但是當我應該使用其中一個代替另一個時,並且當Docker內部存在 Vagrant?

碼頭工人經常使用內流浪,因爲它無法在Mac OSX currenlty運行(見Kernel Requirements),這是非常常用的開發。

然後,讓您的開發團隊在相同的容器上工作,在筆記本電腦上構建和測試產品,然後在「大規模運行,生產中,虛擬機,裸機,OpenStack集羣,公共雲和更多」你需要Vagrant on their Mac OSX

這就是說,在這裏你可以看到另一個真棒案例http://bit.ly/19h8gUk

+1

現在在Docker網站上提供了[更多案例研究](https://www.docker.com/resources/usecases/),包括視頻。 – Andrew

+0

上面提到的項目現在已轉移到https://www.docker.com/customers – meatspace

相關問題