這篇文章主要講解了“docker compose與docker stack有什么用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“docker compose與docker stack有什么用”吧!
創(chuàng)新互聯(lián)專注于尖扎網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供尖扎營銷型網(wǎng)站建設(shè),尖扎網(wǎng)站制作、尖扎網(wǎng)頁設(shè)計(jì)、尖扎網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造尖扎網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供尖扎網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
docker在1.12的時(shí)候引入了swarm mode,其中有個(gè)stack命令,看起來兩者的功能差不多,但還有一點(diǎn)差異的:
docker compose:
compose是fig演變而來,python腳本,需要單獨(dú)安裝,compose可以build image,compose需要單獨(dú)安裝,compose更多是dev環(huán)境使用。
docker stack:
stack被集成進(jìn)docker原生CLI,go編寫,不支持build image。stack更適合docker cloud環(huán)境,用來管理集群。
一個(gè)stack是一組services的集合,它可以使你的app運(yùn)行在指定的環(huán)境,一個(gè)stack文件是一個(gè)YAML文件,YAML文件中定義了一個(gè)或者多個(gè)services,和docker-compose.yml文件很相似,但是和compose又有一點(diǎn)小擴(kuò)展。兩者雖然都使用compose.yml文件,但是里面的命令有一丟丟的差別,stack只支持swarm模式下使用,只支持compose V3格式。
stack配置項(xiàng)
image 該image用來部署該service,這是唯一強(qiáng)制的key autodestroy 當(dāng)service被stop的時(shí)候,container應(yīng)該是否被終止。默認(rèn)是no,可以有no, on-success, always三種 autoredeploy 當(dāng)image在updated的時(shí)候,service的container是否應(yīng)該被自動(dòng)重新部署,默認(rèn)是false cap_add, cap_drop 增加或者刪除容器的acp能力,可以通過man 7 capabilities來查看具體的能力 cgroup_parent 指定一個(gè)可選的父cgroup command 覆蓋image中的command指令 deployment_strategy 容器在node上的分布,默認(rèn)是emptiest_node,可以是emptiest_node, high_availability, every_node三種。 devices device mapping列表,和docker client使用--device效果一樣 DNS 自定義dns server,可以是一個(gè)地址,也可以是多個(gè)列表地址 dns_search 自定義DNS search domains environment 一個(gè)環(huán)境變量列表,會(huì)被增加到service的環(huán)境變量中,這里的定義會(huì)覆蓋image中的環(huán)境變量定義。 expose 暴露端口,但是不會(huì)發(fā)布到host上,它只是可以在你的nodes上可以訪問 extra_hosts 增加hostname映射,和docker client的--add-host效果一樣 labels 增加container的元數(shù)據(jù)。 links 連接到其他service上 net 設(shè)置網(wǎng)絡(luò)模式,默認(rèn)只支持bridge和host模式 pid 設(shè)置pid模式, ports 暴露端口,格式是HOST:CONTAINER,或者只指定container的端口,這樣會(huì)在host上選擇一個(gè)隨機(jī)的端口 privileged 是否開啟container和docker engine一樣的權(quán)限,默認(rèn)是false restart 當(dāng)service被stop的時(shí)候是否重啟container,默認(rèn)是no,可以是no, on-failure, always roles 一個(gè)docker api的roles列表 security_opt 覆蓋container的默認(rèn) labeling scheme sequential_deployment 容器是否被應(yīng)該逐一啟動(dòng)和擴(kuò)展,默認(rèn)是false tags 標(biāo)明部署tags,用來選擇nodes,以確定container運(yùn)行在那個(gè)nodes target_num_containers 該service默認(rèn)運(yùn)行的container副本數(shù),默認(rèn)是1 volumes 掛載的路徑,格式是HOST:CONTAINER,或者HOST:CONTAINER:ro,指定訪問模式 volumes_from 從另一個(gè)service掛載所有的volumes #和docker run共同的key working_dir: /app entrypoint: /app/entrypoint.sh user: root hostname: foo domainname: foo.com mac_address: 02:42:ac:11:65:43 cpu_shares: 512 cpuset: 0,1 mem_limit: 100000m memswap_limit: 200000m privileged: true read_only: true stdin_open: true tty: true
stack不支持的配置項(xiàng):build external_links env_file
感謝各位的閱讀,以上就是“docker compose與docker stack有什么用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)docker compose與docker stack有什么用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!