您好,登錄后才能下訂單哦!
這篇文章主要講解了“docker compose與docker stack有什么用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“docker compose與docker stack有什么用”吧!
docker在1.12的時候引入了swarm mode,其中有個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)境,用來管理集群。
一個stack是一組services的集合,它可以使你的app運(yùn)行在指定的環(huán)境,一個stack文件是一個YAML文件,YAML文件中定義了一個或者多個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的時候,container應(yīng)該是否被終止。默認(rèn)是no,可以有no, on-success, always三種 autoredeploy 當(dāng)image在updated的時候,service的container是否應(yīng)該被自動重新部署,默認(rèn)是false cap_add, cap_drop 增加或者刪除容器的acp能力,可以通過man 7 capabilities來查看具體的能力 cgroup_parent 指定一個可選的父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,可以是一個地址,也可以是多個列表地址 dns_search 自定義DNS search domains environment 一個環(huán)境變量列表,會被增加到service的環(huán)境變量中,這里的定義會覆蓋image中的環(huán)境變量定義。 expose 暴露端口,但是不會發(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的端口,這樣會在host上選擇一個隨機(jī)的端口 privileged 是否開啟container和docker engine一樣的權(quán)限,默認(rèn)是false restart 當(dāng)service被stop的時候是否重啟container,默認(rèn)是no,可以是no, on-failure, always roles 一個docker api的roles列表 security_opt 覆蓋container的默認(rèn) labeling scheme sequential_deployment 容器是否被應(yīng)該逐一啟動和擴(kuò)展,默認(rèn)是false tags 標(biāo)明部署tags,用來選擇nodes,以確定container運(yùn)行在那個nodes target_num_containers 該service默認(rèn)運(yùn)行的container副本數(shù),默認(rèn)是1 volumes 掛載的路徑,格式是HOST:CONTAINER,或者HOST:CONTAINER:ro,指定訪問模式 volumes_from 從另一個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í)后,相信大家對docker compose與docker stack有什么用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。