欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker Swarm實(shí)現(xiàn)服務(wù)的滾動(dòng)更新的示例代碼

 更新時(shí)間:2020年04月29日 09:05:33   作者:趙強(qiáng)老師  
這篇文章主要介紹了Docker Swarm實(shí)現(xiàn)服務(wù)的滾動(dòng)更新的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、什么是Docker Swarm?

Docker Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干臺(tái)Docker主機(jī)抽象為一個(gè)整體,并且通過一個(gè)入口統(tǒng)一管理這些Docker主機(jī)上的各種Docker資源。Swarm和Kubernetes比較類似,但是更加輕,具有的功能也較kubernetes更少一些。

Docker Swarm 和 Docker Compose 一樣,都是 Docker 官方容器編排項(xiàng)目,但不同的是,Docker Compose 是一個(gè)在單個(gè)服務(wù)器或主機(jī)上創(chuàng)建多個(gè)容器的工具,而 Docker Swarm 則可以在多個(gè)服務(wù)器或主機(jī)上創(chuàng)建容器集群服務(wù),對(duì)于微服務(wù)的部署,顯然 Docker Swarm 會(huì)更加適合。

從 Docker 1.12.0 版本開始,Docker Swarm 已經(jīng)包含在 Docker 引擎中(docker swarm),并且已經(jīng)內(nèi)置了服務(wù)發(fā)現(xiàn)工具,我們就不需要像之前一樣,再配置 Etcd 或者 Consul 來進(jìn)行服務(wù)發(fā)現(xiàn)配置了。

二、Docker Swarm的體系架構(gòu)

這個(gè)圖作為一個(gè)整體實(shí)際上都處于一個(gè)所謂的集群中,它可能對(duì)應(yīng)了一到多臺(tái)的實(shí)際服務(wù)器。每臺(tái)服務(wù)器上都裝有Docker并且開啟了基于HTTP的DockerAPI。這個(gè)集群中有一個(gè)SwarmManager的管理者,用來管理集群中的容器資源。管理者的管理對(duì)象不是服務(wù)器層面而是集群層面的,也就是說通過Manager,我們只能籠統(tǒng)地向集群發(fā)出指令而不能具體到某臺(tái)具體的服務(wù)器上要干什么(這也是Swarm的根本所在)。至于具體的管理實(shí)現(xiàn)方式,Manager向外暴露了一個(gè)HTTP接口,外部用戶通過這個(gè)HTTP接口來實(shí)現(xiàn)對(duì)集群的管理。對(duì)于稍微大一點(diǎn)的集群,最好是拿出一臺(tái)實(shí)際的服務(wù)器作為專門的管理者,作為學(xué)習(xí)而言,也可以把管理者和被管理者放在一臺(tái)服務(wù)器上。

三、Docker Swarm服務(wù)的滾動(dòng)更新

Docker Swarm可以實(shí)現(xiàn)服務(wù)平滑升級(jí),即服務(wù)不停機(jī)更新,客戶端無感知。下面我們通過一個(gè)具體的例子,來為大家演示。這里我們將部署一個(gè)基于nginx的web應(yīng)用程序服務(wù),部署在node節(jié)點(diǎn)上。我們將創(chuàng)建同一個(gè)應(yīng)用的兩個(gè)版本:version 1和 version 2

創(chuàng)建一個(gè)Dockerfile,并使用docker build進(jìn)行編譯。

FROM nginx
RUN echo '<h1>Swarm:Version 1 <h1>' > /usr/share/nginx/html/index.html

注意:為了使得Swarm集群中的每個(gè)節(jié)點(diǎn)都能訪問到鏡像,我們這里把生成的鏡像上傳到自己的鏡像倉庫中。

docker login
docker build -t collenzhao/mynginx:v1 .
docker push collenzhao/mynginx:v1 

創(chuàng)建Swarm的服務(wù),即:通過鏡像啟動(dòng)容器

docker service create -p 7788:80 --replicas 3 --name myswarmtest collenzhao/mynginx:v1

通過docker service ls查看部署的服務(wù)。

通過docker service ps myswarmtest查看部署服務(wù)的詳細(xì)信息

效果如下圖所示

更新之前的Dockerfile,注意版本號(hào)變?yōu)椋?

FROM nginx
RUN echo '<h1>Swarm:Version 2 <h1>' > /usr/share/nginx/html/index.html

使用docker build進(jìn)行編譯

docker build -t collenzhao/mynginx:v2 .

使用docker push上傳到docker hub

docker push collenzhao/mynginx:v2

更新之前在Swarm部署的服務(wù),版本號(hào)變成了2

docker service update --image collenzhao/mynginx:v2 myswarmtest

效果如下如所示

到此這篇關(guān)于Docker Swarm實(shí)現(xiàn)服務(wù)的滾動(dòng)更新的示例代碼的文章就介紹到這了,更多相關(guān)Docker Swarm 滾動(dòng)更新內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解修改docker啟動(dòng)默認(rèn)網(wǎng)橋docker0為自定義網(wǎng)橋

    詳解修改docker啟動(dòng)默認(rèn)網(wǎng)橋docker0為自定義網(wǎng)橋

    本篇文章主要介紹了詳解修改docker啟動(dòng)默認(rèn)網(wǎng)橋docker0為自定義網(wǎng)橋 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • docker部署mysql8之PXC8.0分布式集群過程

    docker部署mysql8之PXC8.0分布式集群過程

    這篇文章主要介紹了docker部署mysql8之PXC8.0分布式集群過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • docker?部署hbase并且java?Api連接的操作過程

    docker?部署hbase并且java?Api連接的操作過程

    這篇文章主要介紹了docker?部署hbase并且java?Api連接的操作過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • 使用docker部署php服務(wù)的詳細(xì)步驟

    使用docker部署php服務(wù)的詳細(xì)步驟

    Docker鏡像是一個(gè)可移植的、自包含的單元,其中包含了運(yùn)行應(yīng)用程序所需的所有文件、配置和依賴項(xiàng),當(dāng)使用Docker部署PHP應(yīng)用程序時(shí),可以將PHP應(yīng)用程序和其依賴項(xiàng)打包到一個(gè)稱為Docker鏡像的獨(dú)立容器中,北本文介紹了使用docker部署php服務(wù)的詳細(xì)步驟,需要的朋友可以參考下
    2024-03-03
  • Docker實(shí)現(xiàn)分布式應(yīng)用功能教程

    Docker實(shí)現(xiàn)分布式應(yīng)用功能教程

    這篇文章主要介紹了Docker實(shí)現(xiàn)分布式應(yīng)用功能,涉及docker分布式應(yīng)用、負(fù)載均衡相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2018-06-06
  • docker安裝redis并掛載到本地的詳細(xì)教程

    docker安裝redis并掛載到本地的詳細(xì)教程

    這篇文章主要介紹了docker安裝redis并掛載到本地,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Docker鏡像用普通用戶啟動(dòng)服務(wù)的實(shí)現(xiàn)

    Docker鏡像用普通用戶啟動(dòng)服務(wù)的實(shí)現(xiàn)

    使用普通用戶啟動(dòng)Docker容器中的服務(wù),可以有效降低潛在的安全風(fēng)險(xiǎn),本文主要介紹了Docker鏡像用普通用戶啟動(dòng)服務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • docker實(shí)現(xiàn)MySQL主從雙備的示例代碼

    docker實(shí)現(xiàn)MySQL主從雙備的示例代碼

    本文主要介紹了docker實(shí)現(xiàn)MySQL主從雙備,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • docker 在容器外執(zhí)行某個(gè)容器內(nèi)的某個(gè)命令操作

    docker 在容器外執(zhí)行某個(gè)容器內(nèi)的某個(gè)命令操作

    這篇文章主要介紹了docker 在容器外執(zhí)行某個(gè)容器內(nèi)的某個(gè)命令操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker部署MySQL并實(shí)現(xiàn)客戶端連接

    Docker部署MySQL并實(shí)現(xiàn)客戶端連接

    這篇文章介紹了Docker部署MySQL并實(shí)現(xiàn)客戶端連接的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01

最新評(píng)論