最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Docker Swarm概念與用法

 更新時(shí)間:2020年09月03日 11:43:34   作者:匿蟒  
這篇文章主要介紹了Docker Swarm概念與用法,幫助大家更好的理解和使用docker容器,感興趣的朋友可以了解下

Docker Swarm是Docker公司開(kāi)發(fā)的容器集群管理服務(wù)。從1.12.0版本開(kāi)始,已經(jīng)是Docker安裝后自帶的一部分(捆綁軟件)了,又稱為Swarm Mode,無(wú)需額外安裝。

與Kubernetes相比,Docker Swarm是一個(gè)簡(jiǎn)單的軟件,似乎不堪大用。但是它與docker-compose兼容的優(yōu)點(diǎn),可以彌補(bǔ)一切。對(duì)于沒(méi)有集群使用經(jīng)驗(yàn)的小白,用Docker Swarm起步,是一個(gè)很好的選擇。

概念

Docker Swarm,主要包含以下概念:

  • Swarm
  • Node
  • Stack
  • Service
  • Task
  • Load balancing

Swarm本身就是“群”的意思,人群、蜂群。這里就是指計(jì)算機(jī)集群(cluster)在用Docker連接后的狀態(tài)。docker swarm命令可以創(chuàng)建、加入、離開(kāi)一個(gè)集群。

Node就是計(jì)算機(jī)節(jié)點(diǎn),也可以認(rèn)為是一個(gè)Docker節(jié)點(diǎn)。Node分為兩類:Manager和Worker。一個(gè)Swarm至少要有一個(gè)Manager,部分管理命令只有在Manager上才能使用。兩類Node都可以運(yùn)行Service,但只有Manager上才能執(zhí)行運(yùn)行命令。比如,在Manager才能使用docker node命令可以查看、配置、刪除Node。

Stack是一組Service,和docker-compose類似。默認(rèn)情況下,一個(gè)Stack共用一個(gè)Network,相互可訪問(wèn),與其它Stack網(wǎng)絡(luò)隔絕。這個(gè)概念只是為了編排的方便。docker stack命令可以方便地操作一個(gè)Stack,而不用一個(gè)一個(gè)地操作Service。

Service是一類容器。對(duì)用戶來(lái)說(shuō),Service就是與Swarm交互的最核心內(nèi)容。Service有兩種運(yùn)行模式,一是replicated,指定一個(gè)Service運(yùn)行容器的數(shù)量;二是global,在所有符合運(yùn)行條件的Node上,都運(yùn)行一個(gè)這類容器。docker service命令可以操作Swarm中的Service。

Task就是指運(yùn)行一個(gè)容器的任務(wù),是Swarm執(zhí)行命令的最小單元。要成功運(yùn)行一個(gè)Service,需要執(zhí)行一個(gè)或多個(gè)Task(取決于一個(gè)Service的容器數(shù)量),確保每一個(gè)容器都順利啟動(dòng)。通常用戶操作的是Service,而非Task。

Load balancing即負(fù)載均衡,也包含反向代理。Swarm使用的是Ingress形式的負(fù)載均衡,即訪問(wèn)每個(gè)節(jié)點(diǎn)的某個(gè)Published端口,都可自動(dòng)代理到真正的服務(wù)。大致原理如下圖所示。

Replicated Mode

services: 
 some-serivce: 
  ... 
  deploy: 
   mode: replicated 
   replicas: 3 

默認(rèn)情況下,mode就是replicated,所以這行可以省略。默認(rèn)replicas數(shù)目為1,代表這個(gè)Service只啟動(dòng)1個(gè)容器。這個(gè)模式,可以按需啟動(dòng)多個(gè)服務(wù),Swarm會(huì)自動(dòng)調(diào)節(jié),有時(shí)一個(gè)Node會(huì)啟動(dòng)多個(gè)容器。

Global Mode

services: 
 some-serivce: 
  ... 
  deploy: 
   mode: global 
   placement: 
    ... 

所有可部署的Node,都部署一個(gè)。通過(guò)placement,可以限定滿足條件的Node,而避免在不合適的Node進(jìn)行部署。

操作

這里列出一些常用的具體操作。

創(chuàng)建第一個(gè)Node

docker swarm init --advertise-addr $IP 

$IP是當(dāng)前Node的外部可訪問(wèn)IP,便于其它Node尋址。

這樣,一個(gè)Swarm就被初始化完成了,它僅有一個(gè)Manager節(jié)點(diǎn)。

添加新的Node到Swarm

在Manager節(jié)點(diǎn),執(zhí)行以下命令可查看到如何加入一個(gè)Node:

$ docker swarm join-token manager 
To add a manager to this swarm, run the following command: 
  docker swarm join --token SWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-ezs4fylj526e801b3cl0pojr5 10.174.28.52:2377 
$ docker swarm join-token worker 
To add a worker to this swarm, run the following command: 
  docker swarm join --token SWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-164iqklrfv8o3t55g088hylyk 10.174.28.52:2377

在一個(gè)未加入任何Swarm的機(jī)器上,執(zhí)行以上顯示的命令docker swarm join --token ..., 即可成為這個(gè)Swarm的Manage或Worker節(jié)點(diǎn)。

設(shè)置節(jié)點(diǎn)Label

在Manager節(jié)點(diǎn),可以對(duì)任意節(jié)點(diǎn)設(shè)置標(biāo)簽:

docker node update $node_name --label-add main=true 

$node_name就是要設(shè)置節(jié)點(diǎn)的ID或HOSTNAME。Label是鍵值對(duì)形式,main=true中的main就是鍵、true就是值。

設(shè)置了Label以后,在Compose文件中就可以用placement中的constraints來(lái)對(duì)可用節(jié)點(diǎn)作出限制。

services: 
 some-serivce: 
  ... 
  deploy: 
   placement: 
    constraints: 
     - node.labels.main == true 
   ... 

以上配置,讓some-service僅在Label被設(shè)置為main=true的節(jié)點(diǎn),才能使用。

啟動(dòng)、停止服務(wù)

docker stack deploy $stack_name -c docker-compose.yaml -c other.yaml ... 

$stack_name是Stack名稱。可以用-c指定多個(gè)docker-compose文件,也可在相同Stack下分批次deploy多個(gè)文件。這些YAML文件的寫(xiě)法,和原先用docker-compose命令執(zhí)行的沒(méi)有本質(zhì)區(qū)別,只是多加了以下獨(dú)特配置,并且會(huì)忽略一些Swarm場(chǎng)景下不支持的配置。

推薦使用docker-compose文件來(lái)編排Stack,而非直接用docker service create來(lái)手工創(chuàng)建。詳細(xì)配置項(xiàng),可參考《Compose file version 3 reference | Docker Documentation》。

需要停止Stack的所有服務(wù)時(shí),可以執(zhí)行以下命令。

docker stack rm $stack_name 

更新已運(yùn)行服務(wù)的鏡像

docker service update --image $image:$tag $service_name 

以上就是詳解Docker Swarm概念與用法的詳細(xì)內(nèi)容,更多關(guān)于Docker Swarm的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Docker安裝RabbitMQ并安裝延時(shí)隊(duì)列插件

    Docker安裝RabbitMQ并安裝延時(shí)隊(duì)列插件

    本文主要介紹了Docker安裝RabbitMQ并安裝延時(shí)隊(duì)列插件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 詳解Docker 修改已有鏡像(commit )

    詳解Docker 修改已有鏡像(commit )

    本篇文章主要介紹了詳解Docker 修改已有鏡像(commit ),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Docker?Kill/Pause/Unpause命令使用與區(qū)別小結(jié)

    Docker?Kill/Pause/Unpause命令使用與區(qū)別小結(jié)

    本文詳細(xì)介紹了Docker中的三個(gè)重要命令,kill、pause和unpause,這些命令在管理和操作運(yùn)行中的容器時(shí)非常有用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Docker圖文詳解

    Docker圖文詳解

    今天小編就為大家分享一篇關(guān)于Docker圖文詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Docker系列compose?ymal文件解析學(xué)習(xí)

    Docker系列compose?ymal文件解析學(xué)習(xí)

    這篇文章主要介紹了Docker系列之compose?ymal文件解析學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • docker和docker-compose一鍵安裝教程(支持在線和離線)

    docker和docker-compose一鍵安裝教程(支持在線和離線)

    這篇文章主要介紹了docker和docker-compose一鍵安裝(支持在線和離線),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • docker-compose安裝redis的方法步驟

    docker-compose安裝redis的方法步驟

    本文主要介紹了docker-compose安裝redis的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Dockerfile文件詳細(xì)介紹

    Dockerfile文件詳細(xì)介紹

    Dockerfile 是一個(gè)文本文件,里面包含組裝新鏡像時(shí)用到的基礎(chǔ)鏡像和各種指令。使用dockerfile 文件來(lái)定義鏡像,然后運(yùn)行鏡像,啟動(dòng)容器。本文詳細(xì)介紹了Dockerfile文件,感興趣的小伙伴可以參考一下
    2023-04-04
  • 查看docker中運(yùn)行的JVM參數(shù)問(wèn)題及解決方法

    查看docker中運(yùn)行的JVM參數(shù)問(wèn)題及解決方法

    這篇文章主要介紹了查看docker中運(yùn)行的JVM參數(shù),方法一使用的是jcmd命令,方法二是jinfo命令,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2022-04-04
  • docker運(yùn)行nginx容器并掛載數(shù)據(jù)卷

    docker運(yùn)行nginx容器并掛載數(shù)據(jù)卷

    本文主要介紹了docker運(yùn)行nginx容器,并通過(guò)掛載目錄將容器與宿主機(jī)的數(shù)據(jù)進(jìn)行共享和統(tǒng)一管理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03

最新評(píng)論

迁安市| 海盐县| 江华| 沿河| 渝北区| 余姚市| 大荔县| 兴化市| 拉萨市| 湛江市| 喀喇沁旗| 叙永县| 大宁县| 炉霍县| 安平县| 普陀区| 巩义市| 贡觉县| 寿阳县| 义乌市| 宜黄县| 特克斯县| 芦溪县| 德安县| 梅河口市| 惠州市| 定陶县| 始兴县| 东安县| 衡山县| 亳州市| 尉氏县| 孟州市| 阿鲁科尔沁旗| 湘潭市| 库伦旗| 杂多县| 双桥区| 江门市| 陈巴尔虎旗| 罗定市|