主頁(yè) > 知識(shí)庫(kù) > docker swarm如何在指定的node上運(yùn)行指定的容器

docker swarm如何在指定的node上運(yùn)行指定的容器

熱門標(biāo)簽:電銷機(jī)器人怎么接線路 撫順地圖標(biāo)注 電銷機(jī)器人價(jià)值 高德地圖標(biāo)注好做嗎 新余高德地圖標(biāo)注怎么修改 大連400電話如何申請(qǐng) 外呼系統(tǒng)坐席費(fèi)計(jì)入會(huì)計(jì)哪個(gè)科目 達(dá)亞電銷機(jī)器人官網(wǎng) 如何分析地圖標(biāo)注

描述問題

比如我們有worker1,worker2,worker3三個(gè)docker host另外加一個(gè)manager1(它是swarm的master)來管理它們。

如果在manager1上直接docker service create某一個(gè)容器的話,比如nginx容器,那么master會(huì)來決定挑哪一個(gè)node作為nginx容器的運(yùn)行的host。

如果我要nginx容器只跑在worker1上面的話,應(yīng)該怎么辦呢?

解決方案

簡(jiǎn)單來說就是給每一個(gè)node打標(biāo)簽。

docker node update --label-add func=nginx worker1

上面這句話的意思是master給worker1的docker打上了功能是nginx的標(biāo)簽。func和nginx是你可以自己定的鍵值對(duì)。

然后在運(yùn)行docker service create 的時(shí)候,指定–constraint參數(shù)即可

docker service create --name my_nginx --constraint 'node.labels.func == nginx' nginx

這樣nginx的容器就會(huì)在worker1上啟動(dòng),而不會(huì)在其他node上啟動(dòng)了。

補(bǔ)充

我的好奇心讓我使了一個(gè)壞。我把worker1打上func=nginx的標(biāo)簽后,在docker service create的constraint參數(shù)上故意寫成node.labels.func == nginx111。

這個(gè)時(shí)候用docker service ls和docker service ps nginx都可以看到service已經(jīng)注冊(cè)了,但是它的CURRENT STATE顯示Pending , 并且也沒有任何分配到node。

我不停止這個(gè)service,然后直接把worker2的標(biāo)簽寫為nginx111,奇跡般地,在worker2上就自己?jiǎn)?dòng)了nginx的容器。master還是很智能的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:黃石 遼源 新鄉(xiāng) 湖南 衡水 南通 海東 楊凌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《docker swarm如何在指定的node上運(yùn)行指定的容器》,本文關(guān)鍵詞  docker,swarm,如,何在,指,定的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《docker swarm如何在指定的node上運(yùn)行指定的容器》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于docker swarm如何在指定的node上運(yùn)行指定的容器的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章