注冊用戶即可下載全站資源 關注Java幫幫微信公眾號
 

Docker官方文檔翻譯4

9
發表時間:2018-09-06 10:13

第四篇:Swarms

準備工作

  • 日本韩国三级aⅴ在线观看安裝Docker版本1.13或更高版本。

  • 安裝Docker compose。

  • 安裝docker machine

  • 日本韩国三级aⅴ在线观看閱讀第1 2 3部分的內容。

  • 確保你已發布并推送到注冊倉庫的friendlyhello鏡像。

  • 日本韩国三级aⅴ在线观看確保你的鏡像可以部署為一個容器。 運行這個命令,在你的信息中插入用戶名,repo和標簽:docker run -p 80:80 username / repo:tag,然后訪問http:// localhost /。

  • 第3部分復制docker-compose.yml文件。

介紹

日本韩国三级aⅴ在线观看在第3部分中,介紹了你在第2部分中編寫的應用程序,并定義了它應該如何在生產環境中運行,將其轉化為服務,并在此過程中將其擴展5倍實例。

日本韩国三级aⅴ在线观看在第4部分中,將此應用程序部署到群集上,并在多臺機器上運行它。 通過將多臺機器連接到稱為swarm的“Dockerized”群集,使多容器,多機器應用成為可能。

理解Swarm clusters

日本韩国三级aⅴ在线观看Swarm是一組運行Docker并加入到集群中的機器。加入到集群中之后,你將繼續運行你習慣的Docker命令,但現在它現在在Docker Swarm的集群上執行。集群中的機器可以是物理的也可以是虛擬的。加入集群后,單個容器被稱為節點。

日本韩国三级aⅴ在线观看Swarm manager可以使用多種策略來運行容器,例如“emptiest node” - 它可以使用容器填充使用率最低的機器。或者“global”,它確保每臺機器只獲取指定容器的一個實例。swarm managerd的這些策略需要在Compose文件中指定。

Swarm manager是群體中唯一可以執行你的命令的機器,或者授權其他機器作為worker加入到群體中。workers只是在那里提供能力,并沒有權力告訴任何其他機器可以做什么和不可以做什么。

到目前為止,您已經在本地機器上以單主機模式使用Docker。但是Docker也可以切換到群集模式,這就是使用群集的原因。立即啟用群模式使當前的機器成為群管理器。從此,Docker將運行您在您管理的群集上執行的命令,而不僅僅是在當前機器上執行。

設置你的集群

日本韩国三级aⅴ在线观看一個swarm是由多個節點組成,節點可以是物理或者虛擬的機器。它的基本概念足夠簡單:運行docker swarm init 命令能夠開啟swarm模式,并且使你的當前機器成為swarm manager,運行docker swarm join命令能夠讓其他機器加入到 swarm 中成為worker機器。選擇的下面的選項卡,看看它是如何各自情況下發揮作用的。我們使用虛擬機快速創建一個雙機集群,并且將其變成swarm.

創建集群

日本韩国三级aⅴ在线观看你需需要一個可以創建虛擬機(VM)的虛擬機管理程序,因此請為你的計算機的操作系統安裝Oracle VirtualBox。

日本韩国三级aⅴ在线观看現在,創建兩個vm使用docker-machine ,使用VirtualBox 驅動:


查看vm列表并獲取它們的ip地址

日本韩国三级aⅴ在线观看你現在有2個vms創建,名字為myvm1和myvm2。


初始化swarm 并且添加節點

第一個機器扮演的是manager的角色,它可以執行管理命令并且驗證worker 加入到 swarm中去,第二個是worker。

日本韩国三级aⅴ在线观看你可能發送命令到您的vms通過docker-machine ssh。指示myvm1成為一個擁有docker swarm init的swarm manager并輸出如下:


如您所見,對docker swarm init的響應包含一個預配置的docker swarm join命令,您可以在要添加的任何節點上運行該命令。 復制這個命令,并通過docker-machine ssh將它發送到myvm2,讓myvm2作為一個worker加入你的新群體:



日本韩国三级aⅴ在线观看恭喜,你已經成功創建了你的第一個swarm。

日本韩国三级aⅴ在线观看運行docker node ls在manager機器上去查看swarm 中的節點:


發布你的應用到swarm cluster中去

最難的部分已經完結。現在你只需要重復再第三部分的過程將應用發布到你的swarm中去。請記住只有像myvm1這樣的群集管理器才能執行Docker命令; worker只是用來工作的。

配置一個docker-machine命令成為swarm manager

日本韩国三级aⅴ在线观看到目前為止,你已經在Docker-machine ssh中將Docker命令包裝為與虛擬機交談。 另一種選擇是運行docker-machine env 來獲取并運行一個命令,該命令將當前shell配置為與VM上的Docker守護進程進行通信。 此方法對下一步更好,因為它允許您使用本地docker-compose.yml文件“遠程”部署應用程序,而無需將其復制到任何位置。

鍵入docker-machine env myvm1,然后復制粘貼并運行作為輸出最后一行提供的命令,以將shell配置為與swarm管理器myvm1對話。

配置shell的命令根據你是Mac,Linux還是Windows而有所不同,因此下面的選項卡中顯示了每個命令的示例。

MAC或LINUX上的DOCKER MACHINE SHELL環境

運行docker-machine env myvm1命令去得到命令配置你的shell與myvm1交互。


運行給定的命令來配置你的shell與myvm1進行通信。

eval$(docker-machine env myvm1)
  • 1

  • 2

運行docker-machine ls命令去校驗現在這個活動的機器,如旁邊的星號所示。:


在swarm manager中部署容器

現在你已經有了myvm1,你可以使用它的權利作為swarm manager器發布你的app通過使用第3部分中用于myvm1的相同docker stack deploy命令和docker-compose.yml的本地副本來部署您的應用程序。此命令可能需要幾秒鐘才能完成,部署的服務需要一段時間才能提供服務。在swarm管理器上使用docker service ps 命令驗證所有服務是否已被重新部署。

你通過docker-machine shell配置連接到myvm1,并且你仍然可以訪問本地主機上的文件。 確保你和之前操作在同一個目錄下,其中包括你在第3部分中創建的docker-compose.yml文件。

日本韩国三级aⅴ在线观看和之前一樣,運行下面的命令在mym1機器上部署應用。

docker stack deploy -c docker-compose.yml getstartedlab
  • 1

  • 2

日本韩国三级aⅴ在线观看正是這樣,應用在swarm 集群中國部署了!

日本韩国三级aⅴ在线观看現在,你可以使用第3部分中使用的相同docker命令。只有這一次,請注意,服務(及相關容器)已在myvm1和myvm2之間分配。


訪問你的集群

日本韩国三级aⅴ在线观看你可以從myvm1或myvm2的IP地址訪問你的應用程序。

日本韩国三级aⅴ在线观看你創建的網絡在它們之間共享并負載平衡。 運行docker-machine ls來獲取虛擬機的IP地址,并在瀏覽器中訪問它們中的任何一個,并刷新(或者通過curl請求)。

image

日本韩国三级aⅴ在线观看有五個可能的容器ID全部隨機輪訓,來實現負載平衡。

兩個IP地址工作的原因是群中的節點參與入口路由網格。 這可以確保部署在群集中某個端口的服務始終將該端口保留給自己,而不管實際運行容器的節點是什么。 以下是三節點群上端口8080上發布的名為my-web的服務的路由網格示意圖:

image

迭代和擴展應用程序

從這里你可以完成你在第二部分和第三部分中學到的一切。

日本韩国三级aⅴ在线观看通過更改docker-compose.yml文件來擴展應用程序。

通過編輯代碼更改應用程序行為,然后重新構建并推送新鏡像。 (要做到這一點,請按照與之前構建應用程序和發布鏡像相同的步驟進行操作。

日本韩国三级aⅴ在线观看無論哪種情況,只需簡單地再次運行docker stack deploy來部署這些更改。

你可以使用你在myvm2上使用的相同docker swarm join命令將任何物理或虛擬機器加入此群集。之后只需運行Docker堆棧部署,并且你的應用可以利用新資源。

清除和重啟

Stacks and swarms(堆棧和集群)

你能通過docker stack rm卸載堆棧。例如:

docker stack rm getstartedlab
  • 1

  • 2

取消設置docker-machine shell變量設置

你可以使用給定的命令取消當前shell中的docker-machine環境變量。在mac或者linux環境中命令如下:

eval$(docker-machine env -u)
  • 1

這將shell與docker-machine創建的虛擬機斷開連接,并允許您繼續在同一個shell中工作,現在使用本機docker命令(例如,在Docker for Mac或Docker for Windows上)。 要了解更多信息,請參閱關于取消設置環境變量的機器主題。

重啟Docker machines

如果不關閉你的本地主機,Docker machines將會停止運行。你能通過運行docker-machine ls命令來檢查機器的狀態。


要重新啟動已停止的計算機,請運行以下命令:

docker-machine start <machine-name>
  • 1

  • 2

例如:


總結

日本韩国三级aⅴ在线观看在第4部分中,你了解了群體是什么,群體中的節點如何成為manager或workwer,創建群體并在其上部署應用程序。 你看到Docker的核心命令并沒有從第3部分改變,他們只需要將目標鎖定在swarm master上。 你還看到了Docker網絡的力量,即使它們運行在不同的機器上,也可以跨容器保持負載平衡請求。 最后,你學習了如何在集群上迭代和縮放應用程序。

日本韩国三级aⅴ在线观看以下是一些您可能想要運行的命令,以便與你的群集和虛擬機進行一點交互:

文章分類: Docker
分享到:
支付寶贊助-Java幫幫社區
微信贊助-Java幫幫社區
Java幫幫公眾號生態

Java幫幫公眾號生態

總有一款適合你

Java幫幫-微信公眾號

Java幫幫-微信公眾號

將分享做到極致

Python幫幫-公眾號

Python幫幫-公眾號

人工智能,爬蟲,學習教程

大數據驛站-微信公眾號

大數據驛站-微信公眾號

一起在數據中成長

九點編程-公眾號

九點編程-公眾號

深夜九點學編程

程序員生活志-公眾號

程序員生活志-公眾號

互聯網,職場,程序員那些事兒

Java幫幫學習群生態

Java幫幫學習群生態

總有一款能幫到你

Java學習群

Java學習群

與大牛一起交流

大數據學習群

大數據學習群

在數據中成長

九點編程學習群

九點編程學習群

深夜九點學編程

python學習群

python學習群

人工智能,爬蟲

測試學習群

測試學習群

感受測試的魅力

Java幫幫生態承諾

Java幫幫生態承諾

一直堅守,不負重望

初心
勤儉
誠信
正義
分享
合作品牌 非盈利生態-優質內容分享傳播者
關于我們
友鏈申請
友鏈交換:加幫主QQ2524138991 留言即可 24小時內答復  
全站內容非商業用途,內容來源于網友,并遵循 許可,如有異議請聯系客服。
會員登錄
獲取驗證碼
登錄
登錄
我的資料
留言
回到頂部