最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker 容器編排利器Compose(起步篇)

 更新時間:2018年06月08日 10:19:24   作者:一書生VOID的博客  
這篇文章主要介紹了Docker 容器編排利器Compose(起步篇),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一個大型的Docker組成的微服務(wù)應(yīng)用中,容器的數(shù)量是非常龐大的,如果依賴傳統(tǒng)的人工配置方式進行維護,對于開發(fā)和運維來說簡直就是噩夢。Compose的出現(xiàn)正是為了解決這個問題。

Compose簡介

Compose的前身是Fig,F(xiàn)ig被Docker收購之后正式更名為Compose,Compose向下兼容Fig。Compose是一個用于定義和運行多容器Docker應(yīng)用的工具,只需要一個Compose的配置文件和一個簡單的命令就可以創(chuàng)建并運行應(yīng)用所需的所有容器。在配置文件中,所有容器通過services來定義,并使用docker-compose命令啟動或停止容器以及所有依賴容器。

安裝Compose

Compose的安裝方式有多種,這里推薦使用curl命令安裝,在安裝之前,要確保你的機器上已經(jīng)安裝了Docker,可以運行sudo docker version命令來確認是否已安裝了Docker。截至目前,Compose的最新發(fā)布版為1.11.2,下面演示在一臺已經(jīng)安裝好Docker的Linux主機上安裝Compose。

安裝很簡單,只需要執(zhí)行下面的命令即可:

復(fù)制代碼 代碼如下:
sudo curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

等待安裝完畢后,執(zhí)行下面的命令,為docker-compose添加可執(zhí)行權(quán)限:

chmod +x /usr/local/bin/docker-compose

輸入docker-compose --version命令可以查看安裝結(jié)果。

除了這種安裝方式之外,還可以通過Python的pip命令安裝或?qū)ompose安裝成Docker容器,詳情請參見https://docs.docker.com/compose/install/#install-as-a-container。

如果要卸載Compose,可以執(zhí)行sudo rm /usr/local/bin/docker-compose命令。

Compose入門

下面我們通過一個簡單的例子演示Compose的使用步驟,使用Python構(gòu)建一個Web應(yīng)用,該應(yīng)用使用Flask框架,并在Redis中維護一個命中計數(shù)(即使你不熟悉Python也沒有關(guān)系,你甚至不需要安裝Python和Redis,我們會從容器中獲取這些依賴環(huán)境)。

創(chuàng)建工程

首先需要一個文件夾作為項目文件夾:

mkdir composetest
cd composetest

在項目文件夾下創(chuàng)建一個app.py的文件,并將下面的代碼拷貝并粘貼到該文件中:

from flask import Flask
from redis import Redis

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
  count = redis.incr('hits')
  return 'Hello World! I have been seen {} times.\n'.format(count)

if __name__ == "__main__":
  app.run(host="0.0.0.0", debug=True)

在項目文件夾下創(chuàng)建一個requirements.txt的文件,并將下面的代碼拷貝并粘貼到該文件中:

flask
redis

到此,我們已經(jīng)完成了新建項目,編碼,添加依賴等工作。

創(chuàng)建Dockerfile

下面我們創(chuàng)建一個Dockerfile文件用于構(gòu)建Docker鏡像,該鏡像包含了運行該Web應(yīng)用的所有依賴,包括Python運行環(huán)境。

在項目文件夾下創(chuàng)建一個Dockerfile文件,并將下面的內(nèi)容拷貝并粘貼到該文件中:

FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

大概解釋一下這個配置文件:

  1. 使用python-3.4-alpine作為基礎(chǔ)鏡像
  2. 將當(dāng)前目錄添加到鏡像中/code目錄下
  3. 將/code設(shè)置為工作目錄
  4. 安裝Python依賴
  5. 設(shè)置默認執(zhí)行命令

在Compose文件中定義services

在項目文件夾下創(chuàng)建一個docker-compose.yml文件,并將下面的內(nèi)容拷貝并粘貼到該文件中:

version: '2'
services:
 web:
  build: .
  ports:
   - "5000:5000"
  volumes:
   - .:/code
 redis:
  image: "redis:alpine"

該配置文件中包含兩個services,即web和redis。web會使用當(dāng)前目錄中的Dockerfile文件構(gòu)建鏡像,并將容器的5000端口暴露給主機,然后將項目文件夾掛載到容器中的/code目錄下;redis使用官方發(fā)布的鏡像構(gòu)建。

構(gòu)建并運行

執(zhí)行下面的命令構(gòu)建并運行容器:

sudo docker-compose up

容器構(gòu)建完成并啟動后,可以在瀏覽器中輸入http://localhost:5000查看結(jié)果。頁面會打印“Hello World! I have been seen 1 times.”,刷新頁面后,計數(shù)會累加變成2。

更新應(yīng)用

由于項目文件夾掛載到了容器中,所以我們可以直接修改項目文件夾的應(yīng)用,修改的結(jié)果立即反應(yīng)到容器中,而不用重新啟動容器。將app.py文件中的hello方法中的返回值修改成如下:

return 'Hello from Docker! I have been seen {} times.\n'.format(count)

保存后刷新瀏覽器,發(fā)現(xiàn)打印結(jié)果已經(jīng)更新。

Compose的其他命令

上面提到的Componse使用命令構(gòu)建并啟動容器,是以前臺的方式啟動的,如果希望以后臺啟動,可以添加參數(shù)-d,比如下面這樣:

sudo docker-compose up -d

docker-compose ps命令可以查看正在運行的容器:

liuwei@liuwei-Ubuntu:~$ sudo docker-compose ps
Name           Command        State      Ports
-------------------------------------------------------------------------------------
composetest_redis_1  docker-entrypoint.sh redis ...  Up   6379/tcp
composetest_web_1   python app.py          Up   0.0.0.0:5000->5000/tcp

如果使用sudo docker-compose up -d命令以后臺方式啟動,可以用docker-compose stop命令停止。docker-compose down --volumes命令可以停止容器并將其刪除, --volumns表示同時刪除redis數(shù)據(jù)文件目錄。

有關(guān)Compose的更多命令,可以通過sudo docker-compose --help查看。

以上就是Compose的一個基本使用過程,可以發(fā)現(xiàn),Compose將docker run命令整合到了一個docker-compose.yml配置文件中,對于大型Docker集群的管理是很方便的,例可以將多個service組合成更復(fù)雜的service組,為每個service指定不同的Dockerfile,然后把它們link在一起。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決docker磁盤空間不足問題

    解決docker磁盤空間不足問題

    這篇文章主要介紹了解決docker磁盤空間不足問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Docker容器服務(wù)編排利器詳解

    Docker容器服務(wù)編排利器詳解

    這篇文章主要介紹了Docker容器服務(wù)編排利器,主要包括使用使用Docker?Compose必要性及定義及一些Docker?Compose應(yīng)用參考資料,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • linux上安裝Docker(非常簡單的安裝方法)

    linux上安裝Docker(非常簡單的安裝方法)

    今天小編就為大家分享一篇關(guān)于linux上安裝Docker(非常簡單的安裝方法),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Docker使用java項目工程的部署

    Docker使用java項目工程的部署

    隨著容器化技術(shù)的廣泛應(yīng)用,Docker成為了一種非常流行的容器化解決方案,本文主要介紹了Docker使用java項目工程的部署,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 六種Docker目錄掛載類型及注意事項總結(jié)

    六種Docker目錄掛載類型及注意事項總結(jié)

    這篇文章主要介紹了六種Docker目錄掛載方式,包括數(shù)據(jù)卷掛載、綁定掛載、臨時文件系統(tǒng)掛載、命名卷掛載、匿名卷掛載和卷驅(qū)動掛載,并詳細說明了每種掛載方式的定義、舉例和注意事項,需要的朋友可以參考下
    2025-03-03
  • 云原生Docker容器自定義DNS解析

    云原生Docker容器自定義DNS解析

    Docker沒有為每個容器專門定制鏡像,那么怎么自定義配置容器的DNS配置呢?這篇文章主要給大家介紹了關(guān)于云原生Docker容器自定義DNS的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Docker中Compose與Kubernetes的區(qū)別詳解

    Docker中Compose與Kubernetes的區(qū)別詳解

    這篇文章主要給大家介紹了關(guān)于Docker中Compose與Kubernetes區(qū)別的相關(guān)資料,Docker Compose和Kubernetes(簡稱k8s)都是容器編排工具,需要的朋友可以參考下
    2023-08-08
  • Docker容器開jupyter不能訪問到的解決方法

    Docker容器開jupyter不能訪問到的解決方法

    這篇文章主要介紹了Docker容器開jupyter不能訪問到的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • docker部署vue項目的實現(xiàn)步驟

    docker部署vue項目的實現(xiàn)步驟

    當(dāng)我們在本地開發(fā)了一個vue項目之后,肯定是想部署到服務(wù)器上供其他人訪問,本文主要介紹了docker部署vue項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 談?wù)勎覍ocker的理解

    談?wù)勎覍ocker的理解

    作為一種新興的虛擬化方式,Docker跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢。這篇文章給大家介紹了docker的優(yōu)勢及docker的三個基本概念,感興趣的朋友一起看看吧
    2016-10-10

最新評論

大石桥市| 南和县| 武清区| 徐闻县| 东方市| 德州市| 吴江市| 夏津县| 博乐市| 滁州市| 庄浪县| 黄冈市| 茶陵县| 长宁县| 马山县| 方山县| 屯昌县| 抚顺县| 资阳市| 专栏| 威远县| 庆元县| 乌苏市| 长岛县| 旬邑县| 丰顺县| 平安县| 揭西县| 贡嘎县| 彰化市| 东兰县| 湘阴县| 玛曲县| 蕉岭县| 安吉县| 陵川县| 海阳市| 芦山县| 皋兰县| 沧州市| 博兴县|