溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

docker compose與docker stack有什么用

發(fā)布時間:2021-12-13 17:38:37 來源:億速云 閱讀:229 作者:iii 欄目:云計算

這篇文章主要講解了“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)注!

向AI問一下細(xì)節(jié)

免責(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)容。

AI