日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Docker入门六部曲——Swarm

發布時間:2023/11/28 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker入门六部曲——Swarm 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:http://www.dubby.cn/detail.html?id=8738

準備工作

  • 安裝Docker(版本最低1.13)。
  • 安裝好Docker Compose,上一篇文章介紹過的。
  • 安裝好Docker Machine,上一篇文章也提到了,Mac和Windows已經預先安裝了,但是Linux需要你自己安裝。如果是Windows10,那么請使用Docker Toolbox。
  • 閱讀完Docker入門六部曲——基本引導。
  • 閱讀完Docker入門六部曲——容器。
  • 閱讀完Docker入門六部曲——服務。
  • 確保你已經按照前幾篇所介紹的,把你的鏡像push到遠端倉庫了。
  • 確保你的鏡像可以正常的部署。
  • 按照Docker入門六部曲——服務介紹的,寫出了你的docker-compose.yml文件。

介紹

Docker入門六部曲——服務我們已經足額會了定義服務,并且伸縮服務的容量。

這一篇,你可以看到如何把應用部署到集群中去,運行在多個機器上。Swarm可以幫助我們在多容器,多機器上部署服務。

理解Swarm集群

Swarm就是一個運行著Docker的集群。并且,你還可以使用Docker名來控制這個集群,但是你只能對swarm manager下達命令。集群中的機器可以是真實的物理機,也可以是虛擬機。加入swarm之后,他們都是一個節點。

Swarm manager可以使用不同的策略來運行容器,例如“最空節點”策略——選擇使用率最低的節點來運行容器;或者“全局”策略——每一個節點至少有一個鏡像的容器。你可以在Compose文件里指定策略。

Swarm manager就是在這個集群中,你可以執行命令,或者授權其他工作節點加入的那個管理節點。工作節點就是那些只提供資源,但不能授權其他節點加入集群的節點。

配置你的swarm

一個swarm集群由很多個機器組成,不管是虛擬機還是物理機都可以。最簡單的方式就是執行docker swarm init來開啟一個swarm節點,并且把當前執行命令的節點作為管理節點,然后在其他機器上執行docker swarm join來加入這個swarm集群。

本地虛擬機(Mac,Linux,Windows7,Windows8)

為了簡單,我們用虛擬機來完成swarm集群配置吧。你需要安裝VirtualBox。

然后使用docker-machine來創建幾個虛擬機:

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

?

這個需要下載鏡像,如果網絡不好,請耐心等待。

現在,你本地已經有了兩個虛擬機了,分別是myvm1和myvm2(可以使用docker-machine ls查看)。我們準備把myvm1作為管理節點,myvm2作為工作節點。

我們可以使用docker-machine ssh來登錄虛擬機或者發送命令。我們先把myvm1初始化成管理節點吧:

$ docker-machine ssh myvm1 "docker swarm init"
Swarm initialized: current node <node ID> is now a manager.To add a worker to this swarm, run the following command:docker swarm join \--token <token> \<ip>:<port>

?

執行失敗,提示要加--advertise-addr
使用docker-machine ls查看虛擬機,然后拷貝myvm1的ip,指定端口2377,例如:

docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.100:2377"

初始化成功后,會返回一個提示信息,告訴你怎么加入這個集群。把這個命令拷貝下來,然后去myvm2執行:

$ docker-machine ssh myvm2 "docker swarm join \
--token <token> \
<ip>:<port>"This node joined a swarm as a worker.

?

注意:反斜線不能丟。

使用docker-machine ssh myvm1可以登錄到myvm1上,使用docker node ls可以查看當前swarm集群中的所有節點:

docker@myvm1:~$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
brtu9urxwfd5j0zrmkubhpkbd     myvm2               Ready               Active              
rihwohkh3ph38fhillhhb84sk *   myvm1               Ready               Active              Leader

?

執行exit退出登錄,返回原來的機器。當然也可以直接發送命令:

docker-machine ssh myvm1 "docker node ls"

?

部署應用

你一定沒有想到,最難的部分已經被你度過去了?,F在我們只需要重復上一篇文章的的步驟就可以了。不過要記住,我們只可以在myvm1上執行dokcer命令,因為他才是管理節點。

把之前的docker-compose.yml拷貝過來。使用docker-machine scp上傳到myvm1上:

docker-machine scp docker-compose.yml myvm1:~

?

我們要開始使用swarm來部署啦!同樣還是docker stack deploy

docker-machine ssh myvm1 "docker stack deploy -c docker-compose.yml getstartedlab"

?

結束了!

我們來查看一下容器吧:

$ docker-machine ssh myvm1 "docker stack ps getstartedlab"ID            NAME        IMAGE              NODE   DESIRED STATE
jq2g3qp8nzwx  test_web.1  username/repo:tag  myvm1  Running
88wgshobzoxl  test_web.2  username/repo:tag  myvm2  Running
vbb1qbkb0o2z  test_web.3  username/repo:tag  myvm2  Running
ghii74p9budx  test_web.4  username/repo:tag  myvm1  Running
0prmarhavs87  test_web.5  username/repo:tag  myvm2  Running

?

注意:DESIRED 和STATE,第一次執行命令部署時,需要從遠端倉庫下載鏡像,所以如果網絡不好的話,會過一段時間才會是Running。

訪問集群

你可以使用myvm1和myvm2任意一個ip來訪問這個集群。這個集群內部的網絡是共享的,而且是負載均衡的??梢允褂?code>docker-machine ls查看ip。然后在瀏覽器中打開,不斷的刷新,你會看到5個容器的id,因為是負載均衡的。

網絡示意圖:

伸縮應用

和上一篇文章的一樣,你只需要修改docker-compose.yml,然后重新執行docker stack deploy就可以了,swarm會自動幫你調整。

你也可以再創建幾個虛擬機,然后加入集群。再使用docker stack deploy重新部署,swarm就會把新的節點利用起來了。

清掃戰場

如果你想把應用給下掉:

docker-machine ssh myvm1 "docker stack rm getstartedlab"

?

如果想讓工作節點脫離swarm集群:docker-machine ssh myvm2 "docker swarm leave"

如果關閉管理節點:docker-machine ssh myvm1 "docker swarm leave --force"

總結

以上是生活随笔為你收集整理的Docker入门六部曲——Swarm的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。