Docker有個(gè)編排工具docker-compose,可以將組成某個(gè)應該的多個(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是用來(lái)指定swarm服務(wù)部署和運行時(shí)的相關(guān)配置,并且只有使用docker stack deploy 部署swarm集群時(shí)才會(huì )生效。如果使用docker-compose up 或者docker-compose run時(shí),該選項會(huì )被忽略。要使用deploy選項,compose-file中version版本要在3或3+?! ?/p>
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ā)現的模式
DNS輪詢(xún)(DNSRR)服務(wù)發(fā)現不使用單個(gè)虛擬IP。 Docker為服務(wù)設置DNS條目,使得服務(wù)名稱(chēng)的DNS查詢(xún)返回一個(gè)IP地址列表,并且客戶(hù)端直接連接到其中的一個(gè)。如果您想使用自己的負載平衡器,或者混合Windows和Linux應用程序,則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ù)的標簽。這些標簽僅在服務(wù)上設置,而不在服務(wù)的任何容器上設置
version: "3" services: web: image: web deploy: labels: com.example.description: "This label will appear on the web service"
要改為在容器上設置標簽,請在deploy之外使用標簽鍵
version: "3" services: web: image: web labels: com.example.description: "This label will appear on all containers for the web service"
?。?)MODE
全局(每個(gè)群集節點(diǎn)只有一個(gè)容器)或副本(指定容器的數量)。默認值被副本?!?/p>
version: '3' services: worker: image: dockersamples/examplevotingapp_worker deploy: mode: global
?。?)PLACEMENT
指定約束和偏好設置
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ù)是副本模式(默認模式),可以指定該服務(wù)運行的容器數量?!?/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的內存和0.50(50%)的可用處理時(shí)間(CPU),并且擁有20M的內存和0.25個(gè)CPU時(shí)間(總是可用)?! ?/p>
?。?)RESTART_POLICY
配置在容器退出時(shí)是否并如何重啟容器。取代restart指令。
version: "3" services: redis: image: redis:alpine deploy: restart_policy: condition: on-failure delay: 5s max_attempts: 3 window: 120s
?。?)UPDATE_CONFIG
配置服務(wù)如何升級
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
?。?0)dns
自定義DNS服務(wù)器??梢允菃蝹€(gè)值或列表?!?/p>
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)境變量。您可以使用數組或字典。任何布爾值;真/假,是/否,需要用引號括起來(lái)以確保它們不被YML解析器轉換為T(mén)rue或False?!?/p>
environment: RACK_ENV: development SHOW: 'true' SESSION_SECRET: environment: - RACK_ENV=development - SHOW=true - SESSION_SECRET
?。?3)expose
開(kāi)放容器的端口而不用在主機上暴露端口,它們只能被相關(guān)聯(lián)的服務(wù)獲取。只能指定內部端口。
expose: - "3000" - "8000"
以上就是Docker Swarm 服務(wù)編排之命令的詳細內容,更多關(guān)于Docker Swarm 服務(wù)編排的資料請關(guān)注腳本之家其它相關(guān)文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站