中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker集群如何創建與管理

發布時間:2022-05-20 14:55:39 來源:億速云 閱讀:287 作者:iii 欄目:大數據

這篇文章主要介紹“Docker集群如何創建與管理”,在日常操作中,相信很多人在Docker集群如何創建與管理問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Docker集群如何創建與管理”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

swarm(集群)是運行docker并加入到一個集群中的一組機器,在這種情況下,您將繼續運行以往的docker命令,但是現在它們將由swarm manager(集群管理器)在集群上執行。集群中的機器可以是物理的或虛擬的,加入集群后,它們被稱為nodes(節點)。集群管理器可以使用多種策略來運行容器,比如emptiest node(最空的節點),它使用容器填充最少使用的機器。或者global(全局),它確保了每臺機器只能得到指定容器的一個實例。您可以指示集群管理器在組成文件中使用這些策略,就像您已經使用的策略一樣。

集群管理器是集群中唯一可以執行命令的機器,或者授權其他機器作為workers(工人)加入集群。工人只是在那里提供能力,并沒有權力告訴任何其他機器可以做什么和不可以做什么。到目前為止,您已經在本地機器上以單主機模式使用docker,但是docker也可以切換到集群模式,這就是使用集群的原因。當立即啟用集群模式使當前機器成為集群管理器時,docker將運行您正在管理的集群上執行的命令,而不僅僅是在當前的機器上。

創建一個集群

一個集群由多個節點組成,可以是物理機或虛擬機,做法很簡單,運行docker swarm init來啟用集群模式,并讓你的當前機器成為集群管理器,然后在其他機器上運行docker swarm join讓它們作為工人加入集群。

接下來使用虛擬機快速創建一個集群,需要一個可以創建虛擬機(vms)的虛擬機管理程序,在機器上安裝oracle virtualbox 應用程序。如果是windows 10系統,而且安裝了hyper-v,則無需安裝virtualbox,而應該使用hyper-v。

現在,使用docker-machine創建幾個虛擬機,使用virtualbox驅動程序:

$ docker-machine create --driver virtualbox myvm1
$ docker-machine create --driver virtualbox myvm2

您現在創建了兩個名為myvm1和myvm2的虛擬機,使用下面命令列出機器并獲取其ip地址:

$ docker-machine ls

第一臺機器將作為管理員,執行管理命令,認證工人加入群體,第二臺機器將成為工人。可以使用docker-machine ssh將命令發送到虛擬機,執行docker swarm init使myvm1成為集群管理器:

$ docker-machine ssh myvm1 "docker swarm init --advertise-addr <myvm1的ip>"

在執行docker swarm init后,響應中會包含一個預配置的docker swarm join命令,您可以在要添加的任何節點上運行該命令。復制這個命令,并通過docker-machine ssh把它發送到名為myvm2的虛擬機,讓myvm2作為工人加入新的集群:

$ docker-machine ssh myvm2 "docker swarm join --token <token> <ip>:2377"

將myvm2加入集群時,端口號要選擇2377,因為端口2376是docker守護進程端口,不要使用此端口,否則可能會遇到錯誤。在管理器上運行docker node ls以查看集群中的節點:

$ docker-machine ssh myvm1 "docker node ls"

現在集群己經創建完成,如果想要刪除集群,可以使用docker swarm leave在每個節點運行。

在集群上部署應用程序

現在只要重復《docker分布式應用教程》中使用的過程來部署新的集群,只要記住,只有像myvm1這樣的集群管理器才能執行docker命令,工人只是干活的。

到目前為止,您已經在docker-machine ssh中包裝了docker命令來與虛擬機進行通信,另一個選擇是運行docker-machine env <machine>來獲取并運行一個配置當前的命令,以便與虛擬機上的docker守護進程通信。這個方法更好,因為它允許使用本地docker-compose.yml文件來“遠程”部署應用程序,而不需要將它復制到任何地方。

執行docker-machine env myvm1命令,復制輸出的最后一行提供的命令,然后粘貼并運行該命令,以將終端配置為與集群管理器myvm1對話:

$ docker-machine env myvm1
$ eval $(docker-machine env myvm1)

運行docker-machine ls以驗證myvm1現在是活動的機器,即活動狀態旁邊有星號:

$ docker-machine ls

現在可以使用myvm1的權限作為集群管理器,通過使用docker stack deploy命令和docker-compose.yml的本地副本來部署應用程序。通過docker-machine命令配置連接到myvm1,仍然可以訪問本地主機上的文件,確保在docker-compose.yml文件同一個目錄下,運行以下命令在myvm1上部署應用程序:

$ docker stack deploy -c docker-compose.yml getstartedlab

就這樣,應用程序被部署在一個集群上,現在,您可以使用docker命令看到服務和關聯的容器已經在myvm1和myvm2之間分配了:

$ docker stack ps getstartedlab

訪問集群

現在可以從myvm1或myvm2的ip地址訪問應用程序,網絡在它們之間共享并負載平衡。運行docker-machine ls來獲取虛擬機的ip地址,并在瀏覽器中訪問其中的任何一個,或使用curl命令訪問。

Docker集群如何創建與管理

您將看到五個不同的容器id,它們都是隨機循環的,展示了負載平衡。兩個ip地址工作的原因是集群中的節點參與入口路由網絡,這可以確保部署在群集中某個端口的服務始終將該端口保留給自己,而不管哪個節點實際上正在運行該容器。以下是三節點集群上端口8080上發布一個名為my-web的服務的路由網絡示意圖:

Docker集群如何創建與管理

可以通過更改docker-compose.yml文件來縮放應用程序,編輯代碼更改應用程序的行為,然后重新構建,然后推送新的鏡像,只需再次運行docker stack deploy來部署這些更改。可以使用docker swarm join命令將任何物理或虛擬機器加入到此集群,并將容量添加到集群,之后只需運行docker stack deploy部署,應用將利用新的資源。

清理并重新啟動

可以使用docker stack rm清理堆棧,例如:

$ docker stack rm getstartedlab

可以使用以下命令取消當前終端中的docker-machine環境變量:

$ eval $(docker-machine env -u)

這會將終端與docker-machine創建的虛擬機斷開連接,并允許繼續在同一個終端中工作。如果關閉本地主機,docker機器將停止運行,您可以通過運行docker-machine ls來檢查機器的狀態:

$ docker-machine ls

要重新啟動已停止的機器,可以運行:

$ docker-machine start <machine-name>

如果你想刪除這個集群,可以使用docker-machine ssh myvm2 "docker swarm leave"命令,或者使用docker-machine ssh myvm1 "docker swarm leave --force"強制刪除。

到此,關于“Docker集群如何創建與管理”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广宁县| 依兰县| 甘孜| 文水县| 曲水县| 阜宁县| 新河县| 西和县| 来凤县| 贺兰县| 屯昌县| 铁力市| 开江县| 永善县| 内丘县| 西盟| 榆社县| 桐城市| 孝感市| 合江县| 临夏县| 阆中市| 合川市| 郯城县| 金溪县| 涿州市| 定日县| 新泰市| 五常市| 尉犁县| 龙口市| 游戏| 金塔县| 桓台县| 龙胜| 丰顺县| 凌源市| 台江县| 武义县| 芦山县| 本溪|