docker swarm如何在指定的node上運(yùn)行指定的容器
描述問題
比如我們有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í)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
docker中的volume和bind?mount區(qū)別講解
這篇文章主要介紹了docker的volume和bind?mount區(qū)別,介紹了volume?相對(duì)于bind?mount的優(yōu)點(diǎn)及volume操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Docker安裝MySQL8.0的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker安裝MySQL8.0的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
使用docker極簡(jiǎn)打包java.jar鏡像并啟動(dòng)的操作步驟
這篇文章主要介紹了用docker極簡(jiǎn)打包java.jar鏡像并啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
解析docker妙用SpringBoot構(gòu)建微服務(wù)實(shí)戰(zhàn)記錄
Spring Boot 是 Spring 開源組織的子項(xiàng)目,是 Spring 組件一站式解決方案,本文通過詳細(xì)案例給大家解析docker妙用SpringBoot構(gòu)建微服務(wù)實(shí)戰(zhàn)記錄,感興趣的朋友跟隨小編一起看看吧2021-11-11
Docker容器通過獨(dú)立IP暴露給局域網(wǎng)的方法
這篇文章主要介紹了Docker容器通過獨(dú)立IP暴露給局域網(wǎng)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
Spring Cloud中使用jib進(jìn)行docker部署的步驟詳解
這篇文章主要介紹了Spring Cloud中使用jib進(jìn)行docker部署的步驟詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Docker?安裝Tomcat、實(shí)現(xiàn)Tomcat集群的詳細(xì)過程
這篇文章主要介紹了Docker安裝Tomcat、實(shí)現(xiàn)Tomcat集群,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
使用Docker部署Dashdot服務(wù)器儀表盤的步驟
Dashdot是一款簡(jiǎn)單、實(shí)用的開源服務(wù)器儀表盤,設(shè)計(jì)時(shí)考慮到了玻璃形態(tài),它旨在用于較小的?VPS?和私人服務(wù)器,這篇文章主要介紹了使用Docker部署Dashdot服務(wù)器儀表盤,需要的朋友可以參考下2022-12-12
Docker中搭建FastDFS文件系統(tǒng)(多圖教程)
這篇文章主要介紹了Docker中搭建FastDFS文件系統(tǒng)(多圖教程),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
Docker創(chuàng)建MongoDB容器并添加root密碼驗(yàn)證與更多用戶詳細(xì)步驟
MongoDB是一個(gè)著名的面向文檔的數(shù)據(jù)庫,被許多現(xiàn)代Web應(yīng)用程序使用,下面這篇文章主要給大家介紹了關(guān)于Docker創(chuàng)建MongoDB容器并添加root密碼驗(yàn)證與更多用戶的相關(guān)資料,需要的朋友可以參考下2023-01-01

