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

Docker Swarm 服務(wù)編排之命令詳解

 更新時(shí)間:2021年05月25日 09:58:28   作者:Bigberg  
在Docker Swarm集群中,使用stack服務(wù)編排搭建lnmp來(lái)部署WordPress非常的方便,今天小編重點(diǎn)給大家介紹Docker Swarm 服務(wù)編排之命令詳解,感興趣的朋友跟隨小編一起看看吧

一、簡(jiǎn)介

  Docker有個(gè)編排工具docker-compose,可以將組成某個(gè)應(yīng)該的多個(gè)docker容器編排在一起,同時(shí)管理。同樣在Swarm集群中,可以使用docker stack 將一組相關(guān)聯(lián)的服務(wù)進(jìn)行編排管理。

  Docker stack 也是一個(gè)yaml文件,和一份docker-compose.yml文件差不多,指令也基本一致。但是與compose相比其不支持build、links和network_mode。Docker stack有一個(gè)新的指令deploy。

  注:stack不支持的指令

  

二、Deploy

  Deploy是用來(lái)指定swarm服務(wù)部署和運(yùn)行時(shí)的相關(guān)配置,并且只有使用docker stack deploy 部署swarm集群時(shí)才會(huì)生效。如果使用docker-compose up 或者docker-compose run時(shí),該選項(xiàng)會(huì)被忽略。要使用deploy選項(xiàng),compose-file中version版本要在3或3+。  

version: '3'
services:
  redis:
    image: redis:alpine
    deploy:
      replicas: 6
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure

 ?。?)ENDPOINT_MODE

   指定swarm服務(wù)發(fā)現(xiàn)的模式

  • endpoint_mode: vip - Docker為swarm集群服務(wù)分配一個(gè)虛擬IP(VIP),作為客戶(hù)端到達(dá)集群服務(wù)的“前端”。Docker 在客戶(hù)端和可用工作節(jié)點(diǎn)之間對(duì)服務(wù)的請(qǐng)求進(jìn)行路由。而客戶(hù)端不用知道有多少節(jié)點(diǎn)參與服務(wù)或者是這些節(jié)點(diǎn)的IP/端口。(這是默認(rèn)模式)
  • endpoint_mode: dnsrr -

DNS輪詢(xún)(DNSRR)服務(wù)發(fā)現(xiàn)不使用單個(gè)虛擬IP。 Docker為服務(wù)設(shè)置DNS條目,使得服務(wù)名稱(chēng)的DNS查詢(xún)返回一個(gè)IP地址列表,并且客戶(hù)端直接連接到其中的一個(gè)。如果您想使用自己的負(fù)載平衡器,或者混合Windows和Linux應(yīng)用程序,則DNS輪詢(xún)功能非常有用。

  注:version 3.3+

version: "3.3"
 
services:
  wordpress:
    image: wordpress
    ports:
      - 8080:80
    networks:
      - overlay
    deploy:
      mode: replicated
      replicas: 2
      endpoint_mode: vip
 
  mysql:
    image: mysql
    volumes:
       - db-data:/var/lib/mysql/data
    networks:
       - overlay
    deploy:
      mode: replicated
      replicas: 2
      endpoint_mode: dnsrr
 
volumes:
  db-data:
 
networks:
  overlay:

 ?。?)LABELS  

  指定服務(wù)的標(biāo)簽。這些標(biāo)簽僅在服務(wù)上設(shè)置,而不在服務(wù)的任何容器上設(shè)置  

version: "3"
services:
  web:
    image: web
    deploy:
      labels:
        com.example.description: "This label will appear on the web service"

  要改為在容器上設(shè)置標(biāo)簽,請(qǐng)?jiān)赿eploy之外使用標(biāo)簽鍵

version: "3"
services:
  web:
    image: web
    labels:
      com.example.description: "This label will appear on all containers for the web service"

 ?。?)MODE

  全局(每個(gè)群集節(jié)點(diǎn)只有一個(gè)容器)或副本(指定容器的數(shù)量)。默認(rèn)值被副本。 

version: '3'
services:
  worker:
    image: dockersamples/examplevotingapp_worker
    deploy:
      mode: global

 ?。?)PLACEMENT

  指定約束和偏好設(shè)置 

version: '3'
services:
  db:
    image: postgres
    deploy:
      placement:
        constraints:
          - node.role == manager
          - engine.labels.operatingsystem == ubuntu 14.04
        preferences:
          - spread: node.labels.zone

 ?。?)REPLICAS

  如果服務(wù)是副本模式(默認(rèn)模式),可以指定該服務(wù)運(yùn)行的容器數(shù)量?!?/p>

version: '3'
services:
  worker:
    image: dockersamples/examplevotingapp_worker
    networks:
      - frontend
      - backend
    deploy:
      mode: replicated
      replicas: 6

 ?。?)RESOURCES

  資源限制配置 

version: '3'
services:
  redis:
    image: redis:alpine
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 50M
        reservations:
          cpus: '0.25'
          memory: 20M

  在下例中,redis服務(wù)限制使用不超過(guò)50M的內(nèi)存和0.50(50%)的可用處理時(shí)間(CPU),并且擁有20M的內(nèi)存和0.25個(gè)CPU時(shí)間(總是可用)。  

 ?。?)RESTART_POLICY

  配置在容器退出時(shí)是否并如何重啟容器。取代restart指令。

  • condition :none、on-failure和any(默認(rèn)any)
  • delay :在重啟嘗試之間等待多久(默認(rèn)0)
  • max_attempts :嘗試重啟的次數(shù)(默認(rèn)一直重啟,直到成功)
  • window : 在確實(shí)一個(gè)重啟是否成功前需要等待的窗口時(shí)間 
version: "3"
services:
  redis:
    image: redis:alpine
    deploy:
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
        window: 120s

 ?。?)UPDATE_CONFIG

  配置服務(wù)如何升級(jí)

  • parallelism:同一時(shí)間升級(jí)的容器數(shù)量
  • delay:容器升級(jí)間隔時(shí)間
  • failure_action:升級(jí)失敗后的動(dòng)作(continue、rollback和pause。默認(rèn)pause)。
  • monitor:更新完成后確實(shí)成功的時(shí)間(ns|us|ms|s|m|h)。
  • (默認(rèn)0s)max_failure_ratio:更新期間允許的失敗率o
  • rder:更新期間的操作順序。停止優(yōu)先(舊任務(wù)在開(kāi)始新任務(wù)之前停止)或者先啟動(dòng)(首先啟動(dòng)新任務(wù),并且正在運(yùn)行的任務(wù)短暫重疊)(默認(rèn)停止優(yōu)先)注意:只支持v3.4及更高版本。  
version: '3.4'
services:
  vote:
    image: dockersamples/examplevotingapp_vote:before
    depends_on:
      - redis
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
        delay: 10s
        order: stop-first

?。?)depends_on

  表示服務(wù)之間的依賴(lài)關(guān)系  

version: '3'
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres

  (10)dns  

  自定義DNS服務(wù)器??梢允菃蝹€(gè)值或列表。 

dns: 8.8.8.8
dns:
  - 8.8.8.8
  - 9.9.9.9

 ?。?1)dns_search  

dns_search: example.com
dns_search:
  - dc1.example.com
  - dc2.example.com

 ?。?2)environment  

  添加環(huán)境變量。您可以使用數(shù)組或字典。任何布爾值;真/假,是/否,需要用引號(hào)括起來(lái)以確保它們不被YML解析器轉(zhuǎn)換為T(mén)rue或False。 

environment:
  RACK_ENV: development
  SHOW: 'true'
  SESSION_SECRET:
 
environment:
  - RACK_ENV=development
  - SHOW=true
  - SESSION_SECRET

 ?。?3)expose

  開(kāi)放容器的端口而不用在主機(jī)上暴露端口,它們只能被相關(guān)聯(lián)的服務(wù)獲取。只能指定內(nèi)部端口。 

expose:
 - "3000"
 - "8000"

以上就是Docker Swarm 服務(wù)編排之命令的詳細(xì)內(nèi)容,更多關(guān)于Docker Swarm 服務(wù)編排的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • docker 文件存放路徑, 修改端口映射操作方式

    docker 文件存放路徑, 修改端口映射操作方式

    這篇文章主要介紹了docker 文件存放路徑, 修改端口映射操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 什么是docker Docker入門(mén)教程第一篇

    什么是docker Docker入門(mén)教程第一篇

    什么是docker?這篇文章主要為大家分享了Docker簡(jiǎn)介與入門(mén)教程第一篇,感興趣的小伙伴們可以參考一下
    2016-10-10
  • docker?swarm快速部署redis分布式集群的詳細(xì)過(guò)程

    docker?swarm快速部署redis分布式集群的詳細(xì)過(guò)程

    這篇文章主要介紹了docker?swarm快速部署redis分布式集群,只需要通過(guò)docker-compose.yml文件和一個(gè)啟動(dòng)命令就完成redis分布式部署的方式,讓其分別部署在不同機(jī)器上,并實(shí)現(xiàn)集群搭建,需要的朋友可以參考下
    2022-10-10
  • docker實(shí)現(xiàn)mysql主從復(fù)制的示例代碼

    docker實(shí)現(xiàn)mysql主從復(fù)制的示例代碼

    Docker它不香嗎?即省去了安裝Mysql所需要的步驟,有多個(gè)容器之間相互資源獨(dú)立,IP互不沖突,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-08-08
  • 使用minikube安裝使用單機(jī)版K8S方式(docker)

    使用minikube安裝使用單機(jī)版K8S方式(docker)

    本文介紹了如何在centos7上使用minikube快速搭建單機(jī)版k8s,主要步驟包括:下載kubectl和docker,創(chuàng)建新用戶(hù),下載和安裝minikube,驗(yàn)證安裝情況,最后,通過(guò)執(zhí)行minikube和minikubestop啟停K8s,或使用minikubedelete徹底刪除K8S的數(shù)據(jù)
    2024-10-10
  • 將Docker容器打包并在其他服務(wù)器上運(yùn)行的全過(guò)程

    將Docker容器打包并在其他服務(wù)器上運(yùn)行的全過(guò)程

    Docker容器使得應(yīng)用程序的部署和管理變得更加簡(jiǎn)單和高效,有時(shí),我們可能需要將一個(gè)運(yùn)行中的Docker容器打包,并在其他服務(wù)器上運(yùn)行,本文將詳細(xì)介紹如何實(shí)現(xiàn)這一過(guò)程,需要的朋友可以參考下
    2024-05-05
  • docker搭建redis主從哨兵集群的實(shí)現(xiàn)步驟

    docker搭建redis主從哨兵集群的實(shí)現(xiàn)步驟

    本文主要介紹了docker搭建redis主從哨兵集群的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 一步步教你用docker部署postgreSQL數(shù)據(jù)庫(kù)

    一步步教你用docker部署postgreSQL數(shù)據(jù)庫(kù)

    這篇文章主要給大家介紹了關(guān)于如何使用docker部署postgreSQL數(shù)據(jù)庫(kù)的相關(guān)資料,PostgreSQL是一款功能豐富的關(guān)系型數(shù)據(jù)庫(kù),類(lèi)似于MySQL,它也是受歡迎程度非常高的,需要的朋友可以參考下
    2023-11-11
  • Dockerfile中的ENV指令的具體使用詳解

    Dockerfile中的ENV指令的具體使用詳解

    這篇文章主要介紹了Dockerfile中的ENV指令的具體使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 使用Docker部署前后端分離項(xiàng)目的完整步驟

    使用Docker部署前后端分離項(xiàng)目的完整步驟

    剛剛接觸基礎(chǔ)的運(yùn)維工作,采用的是docker部署的方式,下面這篇文章主要給大家介紹了關(guān)于使用Docker部署前后端分離項(xiàng)目的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01

最新評(píng)論