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

Docker官方文檔翻譯3

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

第三部分: 服務

準備工作

  • 日本韩国三级aⅴ在线观看安裝Docker 1.13及以上版本。

  • 安裝Docker Compose

  • 閱讀第一部分和第二部分的內容。

  • 日本韩国三级aⅴ在线观看確保你已經發布friendlyhello鏡像到docker公共倉庫。

  • 確保你的鏡像能夠作為一個可以部署的容器。 運行這個命令,在你的信息中插入用戶名,repo和tag:docker run -p 80:80 username / repo:tag,然后訪問http:// localhost /。

介紹

第3部分,我們擴展了我們的應用并實現了負載均衡。 要做到這一點,我們必須在分布式應用程序的層次結構中升級一級:服務。


服務(你在這里)
日本韩国三级aⅴ在线观看容器(在第2部分涵蓋)

關于服務

在分布式應用程序中,應用程序的不同部分被稱為“服務”。例如,如果你想象一個視頻共享站點,它可能包含一個用于將應用程序數據存儲在數據庫中的服務,一個用于在后臺進行視頻轉碼的服務 用戶上傳的東西,前端的服務等等。

日本韩国三级aⅴ在线观看服務實際上只是“生產中的容器”。一個服務只運行一個鏡像,但它編碼鏡像運行的方式 - 應該使用哪個端口,容器應運行多少個副本,以便服務具有所需的容量,以及 等等。 縮放服務會更改運行該軟件的容器實例的數量,從而為流程中的服務分配更多計算資源。

日本韩国三级aⅴ在线观看幸運的是,使用Docker平臺定義,運行和擴展服務非常簡單 - 只需編寫一個docker-compose.yml文件即可。

你的第一個docker-compose.yml文件

日本韩国三级aⅴ在线观看docker-compose.yml文件是一個YAML格式的文件,它定義了Docker容器在生產中的行為方式。

docker-compose.yml

將這個文件保存為docker-compose.yml,無論你在什么時候想用。 確保你已將第2部分中創建的圖像推送到注冊倉庫中,并通過用你的鏡像,替換username / repo:標簽來更新此.yml。


日本韩国三级aⅴ在线观看這個docker-compose.yml文件告訴Docker執行以下操作:

  • 日本韩国三级aⅴ在线观看從注冊表中拉出我們在第二部分中上傳的鏡像。

  • 日本韩国三级aⅴ在线观看運行該鏡像的5個實例作為名為web的服務,限制每個實例使用最多10%的CPU(所有的內核)和50MB的RAM。

  • 如果一個失敗,立即重啟容器。

  • 日本韩国三级aⅴ在线观看將主機上的端口80映射到Web的端口80。

  • 日本韩国三级aⅴ在线观看指示web容器通過稱為webnet的負載平衡網絡共享端口80。 (在內部,容器本身在臨時端口上發布到web的端口80)。

  • 日本韩国三级aⅴ在线观看使用默認設置(這是一個負載平衡覆蓋網絡)定義webnet網絡。

運行你的負載均衡應用

在我們可以使用docker stack deploy命令之前,我們首先運行:

docker swarm init
  • 1

  • 2

日本韩国三级aⅴ在线观看現在我們來運行它。 你需要給你的應用一個名字。在這里,取名為getstartedlab:

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

  • 2

我們的單一服務堆棧在一臺主機上運行了5個我們部署映像的容器實例。

在我們的應用程序中獲取一項服務的服務ID:

docker service ls
  • 1

  • 2

查找Web服務的輸出,并以你的應用程序名稱作為前綴。如果你將其命名為與此示例中顯示的相同,則名稱為getstartedlab_web。還列出了服務ID以及副本數量,映像名稱和端口暴露量。

在服務中運行的單個容器稱為任務。任務會獲得數值增加的唯一ID,最大數量為您在docker-compose.yml中定義的副本數量。 列出您的服務的任務:

docker service ps getstartedlab_web
  • 1

  • 2

如果您只列出系統中的所有容器,但也不會顯示服務過濾的任務,任務也會顯示出來:

docker containerls -q
  • 1

您可以連續多次運行curl -4 http:// localhost,或者在瀏覽器上訪問該URL并刷新幾次。

image

日本韩国三级aⅴ在线观看無論哪種方式,容器ID都會發生變化,從而表明有負載均衡的功能; 在每個請求中,以循環的策略選擇5個任務中的一個來響應。 容器ID與前一個命令(docker container ls -q)的輸出相匹配。

擴展你的應用

你可以通過更改docker-compose.yml中的副本數量的值,保存更改并重新運行docker stack deploy命令來擴展應用程序:

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

  • 2

Docker執行一個就地更新,不需要先撕下堆棧或殺死任何容器。

現在,重新運行docker container ls -q以查看重新配置的已部署實例。 如果你擴大了副本數,則會啟動更多任務,從而啟動更多容器。

關閉應用程序和swarm

  • 日本韩国三级aⅴ在线观看關閉應用用docker stack rm命令:

docker stack rm getstartedlab
  • 1

  • 關閉swarm

dockerswarmleave--force
  • 1

  • 2

使用Docker來升級和擴展應用程序同樣簡單。 你已經朝著學習如何在生產中運行容器邁出了一大步。 接下來,您將學習如何將這個應用程序作為Docker機器集群上的真正群體運行。

復習

總而言之,在輸入docker run是非常簡單的,生產環境中的容器的真正實現就是將其作為服務來運行的。 服務在Compose文件中編寫了容器的行為,此文件可用于容器擴容,限制和重新部署我們的應用程序。 對服務的更改可以在運行時適用,使用啟動服務的相同命令:docker stack deploy。

現階段需要探索的一些命令如下:

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

Java幫幫公眾號生態

總有一款適合你

Java幫幫-微信公眾號

Java幫幫-微信公眾號

將分享做到極致

Python幫幫-公眾號

Python幫幫-公眾號

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

大數據驛站-微信公眾號

大數據驛站-微信公眾號

一起在數據中成長

九點編程-公眾號

九點編程-公眾號

深夜九點學編程

程序員生活志-公眾號

程序員生活志-公眾號

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

Java幫幫學習群生態

Java幫幫學習群生態

總有一款能幫到你

Java學習群

Java學習群

與大牛一起交流

大數據學習群

大數據學習群

在數據中成長

九點編程學習群

九點編程學習群

深夜九點學編程

python學習群

python學習群

人工智能,爬蟲

測試學習群

測試學習群

感受測試的魅力

Java幫幫生態承諾

Java幫幫生態承諾

一直堅守,不負重望

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