欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個(gè)Docker容器集群的方法

 更新時(shí)間:2017年01月17日 10:39:02   投稿:mrr  
這篇文章主要介紹了在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個(gè)Docker容器集群的方法,需要的的朋友參考下吧

介紹

Docker Swarm是用于部署Docker主機(jī)集群的Docker本地解決方案。您可以使用它來快速部署在本地計(jì)算機(jī)或受支持的云平臺(tái)上運(yùn)行的Docker主機(jī)集群。

在Docker 1.12之前,設(shè)置和部署Docker主機(jī)集群需要使用外部鍵值存儲(chǔ)(如etcdConsul)來進(jìn)行服務(wù)發(fā)現(xiàn)。但是,使用Docker 1.12,不再需要外部發(fā)現(xiàn)服務(wù),因?yàn)镈ocker提供了一個(gè)內(nèi)置的鍵值存儲(chǔ),可以開箱即用。

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

先決條件

對(duì)于本教程,您需要:

安裝了Docker的本地機(jī)器。您的本地計(jì)算機(jī)可以運(yùn)行任何Linux發(fā)行版,甚至Windows或macOS。對(duì)于Windows和macOS,使用官方安裝程序安裝Docker。 如果您的本地計(jì)算機(jī)上運(yùn)行了Ubuntu 16.04,但未安裝Docker ,請(qǐng)參閱如何在Ubuntu 16.04上安裝和使用Docker以獲取相關(guān)說明。

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

Docker Machine安裝在本地計(jì)算機(jī)上,您將使用它來創(chuàng)建三臺(tái)主機(jī)。 在Windows和macOS上,Docker安裝包括Docker Machine。

第1步 – 配置群集節(jié)點(diǎn)

我們需要為集群創(chuàng)建幾個(gè)Docker主機(jī)。 作為刷新程序,以下命令提供單個(gè)Docker化主機(jī),其中$DOTOKEN是一個(gè)環(huán)境變量,其計(jì)算結(jié)果為您的DigitalOcean API令牌:

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

想象一下,必須設(shè)置一個(gè)由至少三個(gè)節(jié)點(diǎn)組成的集群,一次配置一個(gè)主機(jī)。

我們可以使用此命令并結(jié)合一些簡(jiǎn)單的Bash腳本自動(dòng)化配置任何數(shù)量的Docker主機(jī)的過程。在本地機(jī)器上執(zhí)行此命令以創(chuàng)建三個(gè)名為node-1 , node-2和node-3 Docker主機(jī):

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儀表板或輸入以下命令來驗(yàn)證是否已創(chuàng)建所有計(jì)算機(jī):

docker-machine ls

輸出應(yīng)類似于以下內(nèi)容,它應(yīng)該作為查找節(jié)點(diǎn)的IP地址的快速參考:

Output
NAME ACTIVE DRIVER  STATE URL    SWARM DOCKER ERRORS
node-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

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

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

集群必須至少有一個(gè)節(jié)點(diǎn)作為管理器,但對(duì)于生產(chǎn)設(shè)置,建議使用三個(gè)管理器。對(duì)于此設(shè)置,讓我們選擇第一個(gè)節(jié)點(diǎn),并將其設(shè)置為Swarm管理器。其他兩個(gè)節(jié)點(diǎn)將是工作節(jié)點(diǎn)。

必須在將成為群集一部分的節(jié)點(diǎn)上打開某些網(wǎng)絡(luò)端口,以使群集正常工作。這需要配置防火墻以允許通過這些端口的流量。因?yàn)橛腥齻€(gè)不同的防火墻應(yīng)用程序可用于完成該任務(wù),您需要在每個(gè)防火墻應(yīng)用程序的節(jié)點(diǎn)上執(zhí)行的命令已在單獨(dú)的文章中記錄。按照本指南并為每個(gè)主機(jī)配置防火墻。打開管理器上的適當(dāng)端口,然后重復(fù)以打開兩個(gè)客戶機(jī)節(jié)點(diǎn)上的端口。

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

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

我們已經(jīng)決定node-1將是我們的集群管理器,所以從本地機(jī)器登錄到節(jié)點(diǎn):

docker-machine ssh node-1

命令提示符將更改以反映您現(xiàn)在已登錄到該特定節(jié)點(diǎn)的事實(shí)。要將節(jié)點(diǎn)配置為Swarm管理器,請(qǐng)鍵入以下命令:

docker swarm init --advertise-addr node_ip_address

node_ip_address是節(jié)點(diǎn)的IP地址。 您可以從docker docker-machine ls的輸出或從DigitalOcean儀表板獲取它。

您將看到類似于以下內(nèi)容的輸出:

Output
Swarm 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:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

輸出中是節(jié)點(diǎn)的ID,在此示例中為a35hhzdzf4g95w0op85tqlow1 ,以及有關(guān)如何將其他節(jié)點(diǎn)添加到集群的指示信息。

所以現(xiàn)在你有一個(gè)經(jīng)理配置的Docker Swarm。讓我們將剩余的節(jié)點(diǎn)添加為工人。

第4步 – 將節(jié)點(diǎn)添加到集群

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

首先,從本地機(jī)器連接到node-2 :

docker-machine ssh node-2

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

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

命令成功執(zhí)行后,您將看到此響應(yīng):

Output
This node joined a swarm as a worker.

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

您現(xiàn)在已將兩個(gè)工作節(jié)點(diǎn)添加到集群。如果防火墻規(guī)則配置正確,則現(xiàn)在具有正常運(yùn)行的Docker Swarm,所有節(jié)點(diǎn)都已同步。

第5步 – 管理群集

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

docker node ls

輸出應(yīng)類似于:

Output
ID    HOSTNAME STATUS AVAILABILITY MANAGER STATUS
2qhg0krj00i4d3as2gpb0iqer node-2 Ready Active 
6yqh4bjki46p5uvxdw6d53gc0 node-3 Ready Active 
a35hhzdzf4g95w0op85tqlow1 * node-1 Ready Active Leader

這個(gè)輸出表明我們正在處理一個(gè)3節(jié)點(diǎn)的Docker Swarm及其節(jié)點(diǎn) – 一個(gè)經(jīng)理和兩個(gè)工人。要查看可以在管理器節(jié)點(diǎn)上運(yùn)行的其他管理命令,請(qǐng)鍵入:

docker node --help

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

docker info

輸出應(yīng)該是這種類型,并且應(yīng)該指示集群的狀態(tài)( 活動(dòng)或待決 ),集群中的節(jié)點(diǎn)數(shù)以及特定節(jié)點(diǎn)是管理者還是工作者。

Output
...

Network: bridge host null overlay
Swarm: 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.4
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-38-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
...

如果在工作線程節(jié)點(diǎn)上重復(fù)相同的命令, Is Manager行應(yīng)顯示為false 。

提示 :您可以隨時(shí)從群集中添加或刪除節(jié)點(diǎn)。 此外,工作節(jié)點(diǎn)可以升級(jí)為管理器,并且管理器可以轉(zhuǎn)換為工作器。

現(xiàn)在讓我們?cè)诩荷线\(yùn)行一個(gè)服務(wù)。

第6步 – 在Docker Swarm中運(yùn)行服務(wù)

現(xiàn)在你有一個(gè)Docker Swarm并運(yùn)行,讓我們運(yùn)行一個(gè)測(cè)試容器,看看管理器如何處理它。在運(yùn)行Docker Engine 1.12或更高版本的計(jì)算機(jī)上,容器使用docker docker service命令部署為服務(wù)。 和docker node命令一樣, docker service命令只能在管理器節(jié)點(diǎn)上執(zhí)行。

所以讓我們使用官方的Nginx容器圖像部署一個(gè)web服務(wù)器服務(wù):

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

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

要查看集群上運(yùn)行的服務(wù),請(qǐng)鍵入:

docker service ls

輸出應(yīng)采取此形式。 REPLICAS列顯示有多少服務(wù)實(shí)例正在運(yùn)行:

Output
ID  NAME REPLICAS IMAGE COMMAND 
0ymctkanhtc1 webserver 1/1 nginx 

您可以通過使用docker service ps后跟服務(wù)名稱來確定服務(wù)正在運(yùn)行的節(jié)點(diǎn)。

docker service ps webserver

輸出應(yīng)類似于以下內(nèi)容:

Output
ID    NAME  IMAGE  NODE DESIRED STATE CURRENT STATE  ERROR
39yprxsaaekuif951cl0o4wau webserver.1 nginx node-1 Running Running 7 hours ago 

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

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

Docker Swarm的另一個(gè)功能是縮放服務(wù)的能力,即啟動(dòng)服務(wù)的其他實(shí)例。假設(shè)我們想將我們之前啟動(dòng)的webserver服務(wù)擴(kuò)展為五個(gè)實(shí)例。為此,我們只需鍵入以下命令,系統(tǒng)將創(chuàng)建四個(gè)實(shí)例:

docker service scale webserver=5

并且docker docker service ps的輸出將顯示在哪些節(jié)點(diǎn)上啟動(dòng)的新實(shí)例:

Output
ID    NAME  IMAGE NODE DESIRED STATE CURRENT STATE  ERROR
39yprxsaaekuif951cl0o4wau 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

這表明四個(gè)新實(shí)例中的兩個(gè)在node-3上啟動(dòng),一個(gè)在node-1上啟動(dòng),另一個(gè)在node-2上啟動(dòng)。

最后,如果服務(wù)關(guān)閉,如果原始節(jié)點(diǎn)不再可用,它會(huì)在同一節(jié)點(diǎn)或不同節(jié)點(diǎn)上自動(dòng)重新啟動(dòng)。

結(jié)論

你已經(jīng)看到了使用Docker Engine 1.12和新的Swarm模式設(shè)置Docker Swarm有多么容易。您還了解了如何在集群上執(zhí)行幾個(gè)管理任務(wù)。但還有更多。要查看可用的Docker Swarm命令,請(qǐng)?jiān)赟warm管理器上執(zhí)行以下命令。

docker swarm --help

以上所述是小編給大家介紹的在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個(gè)Docker容器集群的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 使用Dockerfile腳本定制鏡像的方法

    使用Dockerfile腳本定制鏡像的方法

    Dockerfile 是?個(gè)?本?件,其內(nèi)包含了?條條的指令(Instruction),每?條指令構(gòu)建?層,因此每?條指令的內(nèi)容,就是描述該層應(yīng)當(dāng)如何構(gòu)建,這篇文章主要介紹了使用Dockerfile腳本定制鏡像,需要的朋友可以參考下
    2022-07-07
  • Docker安裝運(yùn)行SRS的過程記錄

    Docker安裝運(yùn)行SRS的過程記錄

    SRS定位是運(yùn)營(yíng)級(jí)的互聯(lián)網(wǎng)直播服務(wù)器集群,追求更好的概念完整性和最簡(jiǎn)單實(shí)現(xiàn)的代碼,本文給大家介紹下Docker安裝運(yùn)行SRS的過程,感興趣的朋友跟隨小編一起看看吧
    2022-04-04
  • Docker部署安裝Redash中文版的方法詳解

    Docker部署安裝Redash中文版的方法詳解

    這篇文章主要介紹了Docker部署安裝Redash中文版的方法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • windows docker環(huán)境設(shè)置注意事項(xiàng)

    windows docker環(huán)境設(shè)置注意事項(xiàng)

    這篇文章主要介紹了windows docker環(huán)境設(shè)置注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • docker打包 commit和Dockerfile過程

    docker打包 commit和Dockerfile過程

    這篇文章主要介紹了docker打包 commit和Dockerfile過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • docker搭建minio服務(wù)器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無(wú)法訪問

    docker搭建minio服務(wù)器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無(wú)法訪問

    這篇文章主要介紹了docker搭建minio服務(wù)器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無(wú)法訪問的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 基于windows10安裝docker及遇到的問題

    基于windows10安裝docker及遇到的問題

    這篇文章主要介紹了基于windows10安裝docker及遇到的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • docker實(shí)現(xiàn)重新打tag并刪除原tag的鏡像

    docker實(shí)現(xiàn)重新打tag并刪除原tag的鏡像

    這篇文章主要介紹了docker實(shí)現(xiàn)重新打tag并刪除原tag的鏡像,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker 端口映射詳細(xì)介紹

    Docker 端口映射詳細(xì)介紹

    這篇文章主要介紹了Docker 端口映射詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Docker 使用國(guó)內(nèi)鏡像倉(cāng)庫(kù)的方法

    Docker 使用國(guó)內(nèi)鏡像倉(cāng)庫(kù)的方法

    這篇文章主要介紹了Docker 使用國(guó)內(nèi)鏡像倉(cāng)庫(kù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論