亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

在Ubuntu 16.04上用Docker Swarm和DigitalOcean創建一個Docker容器集群的方法

2024-09-01 13:50:12
字體:
來源:轉載
供稿:網友

介紹

Docker Swarm是用于部署Docker主機集群的Docker本地解決方案。您可以使用它來快速部署在本地計算機或受支持的云平臺上運行的Docker主機集群。

在Docker 1.12之前,設置和部署Docker主機集群需要使用外部鍵值存儲(如etcd或Consul)來進行服務發現。但是,使用Docker 1.12,不再需要外部發現服務,因為Docker提供了一個內置的鍵值存儲,可以開箱即用。

在本教程中,您將了解如何使用Docker 1.12上的Swarm功能部署一組Docker機器。集群中的每個Docker節點將運行Ubuntu 16.04。雖然您可以運行由數十,數百或數千個Docker主機組成的群集,但我們將在本教程中設置的群集將由一個管理器節點和兩個工作節點組成,共有三個群集成員。完成本教程后,您可以輕松地向集群中添加更多節點。

先決條件

對于本教程,您需要:

安裝了Docker的本地機器。您的本地計算機可以運行任何Linux發行版,甚至Windows或macOS。對于Windows和macOS,使用官方安裝程序安裝Docker。 如果您的本地計算機上運行了Ubuntu 16.04,但未安裝Docker ,請參閱如何在Ubuntu 16.04上安裝和使用Docker以獲取相關說明。

DigitalOcean API令牌。如果沒有,使用本指南生成它。生成令牌時,請確保它具有讀寫范圍。這是默認值,因此如果您在生成它時不更改任何選項,它將具有讀寫能力。為了更容易在命令行中使用,請務必將令牌分配給該文章中給出的變量。

Docker Machine安裝在本地計算機上,您將使用它來創建三臺主機。 在Windows和macOS上,Docker安裝包括Docker Machine。

第1步 – 配置群集節點

我們需要為集群創建幾個Docker主機。 作為刷新程序,以下命令提供單個Docker化主機,其中$DOTOKEN是一個環境變量,其計算結果為您的DigitalOcean API令牌:

docker-machine create --driver digitalocean --digitalocean-image ubuntu-16-04-x64 --digitalocean-access-token $DOTOKEN machine-name

想象一下,必須設置一個由至少三個節點組成的集群,一次配置一個主機。

我們可以使用此命令并結合一些簡單的Bash腳本自動化配置任何數量的Docker主機的過程。在本地機器上執行此命令以創建三個名為node-1 , node-2和node-3 Docker主機:

for i in 1 2 3; do docker-machine create --driver digitalocean /--digitalocean-image ubuntu-16-04-x64 /--digitalocean-access-token $DOTOKEN node-$i; done

命令成功完成后,您可以通過訪問您的DigitalOcean儀表板或輸入以下命令來驗證是否已創建所有計算機:

docker-machine ls

輸出應類似于以下內容,它應該作為查找節點的IP地址的快速參考:

OutputNAME ACTIVE DRIVER  STATE URL    SWARM DOCKER ERRORSnode-1 - digitalocean Running tcp://104.236.239.4:2376  v1.12.2 node-2 - digitalocean Running tcp://104.131.165.210:2376  v1.12.2 node-3 - digitalocean Running tcp://104.236.76.250:2376  v1.12.2

此時,所有三個Docker化主機已創建,并且您擁有每個主機的IP地址。他們也都運行Docker 1.12.x,但是還不是Docker集群的一部分。在接下來的步驟中,我們將配置防火墻規則,使節點成為集群成員,選擇其中一個節點并將其作為Docker Swarm管理器,并將其余部分配置為Docker Swarm工作線程。

第2步 – 配置防火墻規則以允許Docker群交通

集群必須至少有一個節點作為管理器,但對于生產設置,建議使用三個管理器。對于此設置,讓我們選擇第一個節點,并將其設置為Swarm管理器。其他兩個節點將是工作節點。

必須在將成為群集一部分的節點上打開某些網絡端口,以使群集正常工作。這需要配置防火墻以允許通過這些端口的流量。因為有三個不同的防火墻應用程序可用于完成該任務,您需要在每個防火墻應用程序的節點上執行的命令已在單獨的文章中記錄。按照本指南并為每個主機配置防火墻。打開管理器上的適當端口,然后重復以打開兩個客戶機節點上的端口。

完成此步驟后,可以初始化集群管理器。

第3步 – 初始化集群管理器

我們已經決定node-1將是我們的集群管理器,所以從本地機器登錄到節點:

docker-machine ssh node-1

命令提示符將更改以反映您現在已登錄到該特定節點的事實。要將節點配置為Swarm管理器,請鍵入以下命令:

docker swarm init --advertise-addr node_ip_address

node_ip_address是節點的IP地址。 您可以從docker docker-machine ls的輸出或從DigitalOcean儀表板獲取它。

您將看到類似于以下內容的輸出:

OutputSwarm initialized: current node (a35hhzdzf4g95w0op85tqlow1) is now a manager.To add a worker to this swarm, run the following command: docker swarm join / --token SWMTKN-1-3k7ighcfs9352hmdfzh31t297fd8tdskg6x6oi8kpzzszznffx-6kovxm3akca2qe3uaxtu07fj3 / 104.236.239.4:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

輸出中是節點的ID,在此示例中為a35hhzdzf4g95w0op85tqlow1 ,以及有關如何將其他節點添加到集群的指示信息。

所以現在你有一個經理配置的Docker Swarm。讓我們將剩余的節點添加為工人。

第4步 – 將節點添加到集群

要完成此步驟,您可能想要打開另一個終端,現在離開您用于單獨登錄到Swarm管理器的終端選項卡或窗口。

首先,從本地機器連接到node-2 :

docker-machine ssh node-2

然后執行此命令,其中your_swarm_token是在上一步創建集群時接收的令牌, manager_node_ip_address是Swarm管理器的IP:

docker swarm join /--token your_swarm_token /manager_node_ip_address:2377

命令成功執行后,您將看到此響應:

OutputThis node joined a swarm as a worker.

注銷node-2 ,然后使用node-3重復此過程以將其添加到集群。

您現在已將兩個工作節點添加到集群。如果防火墻規則配置正確,則現在具有正常運行的Docker Swarm,所有節點都已同步。

第5步 – 管理群集

在管理器和工作節點分配給集群后,所有Docker Swarm管理命令必須在管理器節點上執行。因此返回到您用于添加管理器的終端,并鍵入此命令以查看集群的所有成員:

docker node ls

輸出應類似于:

OutputID    HOSTNAME STATUS AVAILABILITY MANAGER STATUS2qhg0krj00i4d3as2gpb0iqer node-2 Ready Active 6yqh4bjki46p5uvxdw6d53gc0 node-3 Ready Active a35hhzdzf4g95w0op85tqlow1 * node-1 Ready Active Leader

這個輸出表明我們正在處理一個3節點的Docker Swarm及其節點 – 一個經理和兩個工人。要查看可以在管理器節點上運行的其他管理命令,請鍵入:

docker node --help

有關集群的詳細信息,您可以在manager或workers上使用以下命令(它是一個通用的Docker命令):

docker info

輸出應該是這種類型,并且應該指示集群的狀態( 活動或待決 ),集群中的節點數以及特定節點是管理者還是工作者。

Output...Network: bridge host null overlaySwarm: active NodeID: a35hhzdzf4g95w0op85tqlow1 Is Manager: true ClusterID: f45u0lh7ag4qsl4o56yfbls31 Managers: 1 Nodes: 3 Orchestration: Task History Retention Limit: 5 Raft: Snapshot Interval: 10000 Heartbeat Tick: 1 Election Tick: 3 Dispatcher: Heartbeat Period: 5 seconds CA Configuration: Expiry Duration: 3 months Node Address: 104.236.239.4Runtimes: runcDefault Runtime: runcSecurity Options: apparmor seccompKernel Version: 4.4.0-38-genericOperating System: Ubuntu 16.04.1 LTSOSType: linux...

如果在工作線程節點上重復相同的命令, Is Manager行應顯示為false 。

提示 :您可以隨時從群集中添加或刪除節點。 此外,工作節點可以升級為管理器,并且管理器可以轉換為工作器。

現在讓我們在集群上運行一個服務。

第6步 – 在Docker Swarm中運行服務

現在你有一個Docker Swarm并運行,讓我們運行一個測試容器,看看管理器如何處理它。在運行Docker Engine 1.12或更高版本的計算機上,容器使用docker docker service命令部署為服務。 和docker node命令一樣, docker service命令只能在管理器節點上執行。

所以讓我們使用官方的Nginx容器圖像部署一個web服務器服務:

docker service create -p 80:80 --name webserver nginx

在此命令中,我們將Nginx容器中的端口80映射到集群上的端口80 ,以便我們可以從任何位置訪問默認的Nginx頁面。

要查看集群上運行的服務,請鍵入:

docker service ls

輸出應采取此形式。 REPLICAS列顯示有多少服務實例正在運行:

OutputID  NAME REPLICAS IMAGE COMMAND 0ymctkanhtc1 webserver 1/1 nginx 

您可以通過使用docker service ps后跟服務名稱來確定服務正在運行的節點。

docker service ps webserver

輸出應類似于以下內容:

OutputID    NAME  IMAGE  NODE DESIRED STATE CURRENT STATE  ERROR39yprxsaaekuif951cl0o4wau webserver.1 nginx node-1 Running Running 7 hours ago 

 在此示例中, webserver服務在node-1上運行。 由于這是一個在默認端口上運行的Web服務器,您可以通過將瀏覽器指向http:// node-1_ip_address來訪問它。試一試。你會看到Nginx的默認頁面。

借助網狀網絡的魔力,可以在集群的任何其他節點上訪問在節點上運行的服務。例如,此Nginx服務也可以通過將瀏覽器指向集群中任何節點的IP地址來訪問,而不僅僅是它正在運行的節點的IP地址。試一試。

Docker Swarm的另一個功能是縮放服務的能力,即啟動服務的其他實例。假設我們想將我們之前啟動的webserver服務擴展為五個實例。為此,我們只需鍵入以下命令,系統將創建四個實例:

docker service scale webserver=5

并且docker docker service ps的輸出將顯示在哪些節點上啟動的新實例:

OutputID    NAME  IMAGE NODE DESIRED STATE CURRENT STATE  ERROR39yprxsaaekuif951cl0o4wau webserver.1 nginx node-1 Running Running 8 hours ago 1er2rbrnj6ltanoe47mb653wf webserver.2 nginx node-3 Running Running 14 seconds ago evassgyvruh256ebv5pj3bqcz webserver.3 nginx node-3 Running Running 14 seconds ago d453agrdpgng47klbl6yfjnka webserver.4 nginx node-1 Running Running 18 seconds ago 2hsdevx178rg15gqxhzrsnmg6 webserver.5 nginx node-2 Running Running 14 seconds ago

這表明四個新實例中的兩個在node-3上啟動,一個在node-1上啟動,另一個在node-2上啟動。

最后,如果服務關閉,如果原始節點不再可用,它會在同一節點或不同節點上自動重新啟動。

結論

你已經看到了使用Docker Engine 1.12和新的Swarm模式設置Docker Swarm有多么容易。您還了解了如何在集群上執行幾個管理任務。但還有更多。要查看可用的Docker Swarm命令,請在Swarm管理器上執行以下命令。

docker swarm --help

以上所述是小編給大家介紹的在Ubuntu 16.04上用Docker Swarm和DigitalOcean創建一個Docker容器集群的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
xvideos亚洲人网站| 国产精品丝袜久久久久久高清| 亚洲美女喷白浆| 国产一区二区日韩精品欧美精品| 欧美黑人极品猛少妇色xxxxx| 欧美一级片久久久久久久| 欧美激情视频一区二区三区不卡| 国产91av在线| 国产欧美欧洲在线观看| 亚洲综合精品伊人久久| 丝袜亚洲欧美日韩综合| 日韩激情视频在线播放| 51色欧美片视频在线观看| 国产97人人超碰caoprom| 综合网日日天干夜夜久久| 欧美成人自拍视频| 亚洲免费伊人电影在线观看av| 日韩视频在线一区| 国产精品高潮呻吟久久av无限| 原创国产精品91| 欧美电影第一页| 亚洲欧美制服另类日韩| 亚洲国模精品一区| 91社影院在线观看| 一级做a爰片久久毛片美女图片| 亚洲xxx自由成熟| 国产精品你懂得| 欧美在线观看网址综合| 色999日韩欧美国产| 欧美日韩免费区域视频在线观看| 日韩精品福利网站| 久久视频在线看| 久久久www成人免费精品张筱雨| 亚洲第一av在线| 亚洲国产精品99久久| 成人网中文字幕| 欧美亚洲激情在线| 久久久久久尹人网香蕉| 欧美大全免费观看电视剧大泉洋| 日韩视频精品在线| 国产日本欧美在线观看| 最近2019年日本中文免费字幕| 日韩欧美在线第一页| 亚洲精品www久久久| 影音先锋欧美精品| 亚洲人av在线影院| 午夜精品久久久久久久99热浪潮| 久久精品亚洲94久久精品| 日韩精品999| 亚洲自拍偷拍色图| 在线观看亚洲区| 国产精品热视频| 欧美性受xxxx白人性爽| 91精品国产九九九久久久亚洲| 国产视频精品自拍| 国产福利成人在线| 日韩欧美在线观看视频| 欧美日韩国产中文精品字幕自在自线| 91美女福利视频高清| 欧美久久精品一级黑人c片| 日韩成人av在线播放| 少妇高潮久久久久久潘金莲| 亚洲国产精品资源| 欧美大片免费观看| 亚洲少妇激情视频| 久久全球大尺度高清视频| 欧洲亚洲妇女av| 午夜精品一区二区三区av| 欧美精品少妇videofree| 97在线视频免费播放| 日日噜噜噜夜夜爽亚洲精品| 国产精品白丝jk喷水视频一区| 欧美成人激情视频免费观看| 久久99热精品这里久久精品| 国产精品久久久久久久久影视| 日韩免费在线观看视频| 亚洲欧美中文日韩在线v日本| 亚洲天堂av在线免费| 亚洲欧美日本另类| 中文字幕日韩免费视频| 久久亚洲电影天堂| 国产91精品久久久久久| 欧美最顶级丰满的aⅴ艳星| 日韩美女免费线视频| 国产精品美女久久久久av超清| 中文字幕亚洲欧美日韩在线不卡| 97在线视频免费播放| 国产欧美一区二区三区在线看| 精品久久久久久久久久久久| 2020欧美日韩在线视频| 欧美亚洲视频一区二区| 日韩少妇与小伙激情| 日韩国产精品视频| 亚洲永久在线观看| 亚洲另类xxxx| 乱亲女秽乱长久久久| 北条麻妃久久精品| 91美女福利视频高清| 欧美激情xxxx性bbbb| 亚洲第一色中文字幕| 日韩av在线电影网| 国外日韩电影在线观看| 亚洲福利在线观看| 精品高清一区二区三区| 欧美在线视频在线播放完整版免费观看| 亚洲一区二区三区视频| 91精品国产91久久久久久| 亚洲国产精品va| 欧美大片免费看| 日韩精品黄色网| 久久精品视频一| 日韩av在线高清| 97精品视频在线| 亚洲成人国产精品| 国产视频精品va久久久久久| 国产精品v片在线观看不卡| 精品国产一区二区三区久久久| 色悠久久久久综合先锋影音下载| 欧美一级高清免费| 97在线观看免费| 亚洲国产日韩欧美在线图片| 久久久免费精品| 97超级碰在线看视频免费在线看| 欧美国产日韩精品| 在线国产精品视频| 国产一区二区激情| 欧美激情一区二区三区在线视频观看| 97香蕉超级碰碰久久免费的优势| 日韩风俗一区 二区| 久久夜精品va视频免费观看| 久久九九亚洲综合| 国产在线精品一区免费香蕉| 日韩精品一区二区视频| 国产欧美一区二区白浆黑人| 日本精品一区二区三区在线播放视频| 中文字幕一区电影| 午夜精品久久久久久久99热| 国产精品久久久久久av福利| 欧美在线视频观看免费网站| 国产精品久久久久久av福利软件| 欧美黄色免费网站| 国产一区二区三区在线播放免费观看| 亚洲欧美在线播放| 久久精品国产91精品亚洲| 日韩精品在线视频观看| 91精品久久久久久久久不口人| 日韩av在线播放资源| 一区二区三区久久精品| 欧美性生交xxxxxdddd| 亚洲精品国产精品乱码不99按摩| 国产精品wwwwww| 欧美做爰性生交视频| 亚洲free性xxxx护士hd| 亚洲欧美国产一本综合首页| 亚洲影院色在线观看免费| 亚洲精品日韩av| 国产日韩欧美电影在线观看| 一区二区国产精品视频| 久久韩剧网电视剧| 亚洲精品久久久久久久久久久久| 亚洲一区二区三区777| 欧美日韩国产二区| 成人免费高清完整版在线观看| 91成人国产在线观看|