這篇文章主要為大家展示了“怎么使用Docker Compose進行服務(wù)編排”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“怎么使用Docker Compose進行服務(wù)編排”這篇文章吧。
創(chuàng)新互聯(lián)是一家專業(yè)提供掇刀企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、網(wǎng)站設(shè)計、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為掇刀眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
Docker Compose是一個用來定義和運行復雜應用的Docker工具。一個使用Docker容器的應用,通常由多個容器組成。使用Docker Compose不再需要使用shell腳本來啟動容器,而使用服務(wù)編排的方式來管理容器。
Docker Compose 通過一個配置文件來管理多個Docker容器,在配置文件中,所有的容器通過services來定義,然后使用docker-compose腳本來啟動,停止和重啟應用,和應用中的服務(wù)以及所有依賴服務(wù)的容器,非常適合組合使用多個容器進行開發(fā)的場景。
Docker Compose的核心是通過一個YAML文件來管理多個Docker容器,在配置文件中,所有的容器通過services來定義。
YAML (YML)的意思其實是:”Yet Another Markup Language”(仍是一種置標語言)的縮寫。YAML的語法和其他高階語言類似,并且可以簡單表達清單、散列表,標量等資料形態(tài)。它使用空格縮排和大量依賴外觀的特色,特別適合用來表達或編輯數(shù)據(jù)結(jié)構(gòu)、各種設(shè)定檔、傾印除錯內(nèi)容、文件大綱(例如:許多電子郵件標題格式和YAML非常接近)。可以是用 .yml 或 .yaml 作為文件擴展名。
官方文檔: https://docs.docker.com/compose/install
執(zhí)行下面的語句進行安裝
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version
這里,我們將使用兩種不同的方式:手動部署和利用Docker Compose部署,來說明使用Docker Compose進行部署所帶來的好處。
首先,我們需要創(chuàng)建我們的應用程序,實現(xiàn)一個簡單的計數(shù)器功能。這里我們需要創(chuàng)建三個文件:app.py、requirements.txt和Dockerfile,具體內(nèi)容如下。
##app.py應用程序代碼 from flask import Flask from redis import Redis import os app = Flask(__name__) redis = Redis(host='redis', port=6379) @app.route('/') def hello(): redis.incr('hits') return 'Hello World! I have been seen %s times.' % redis.get('hits') if __name__ == "__main__": app.run(host="0.0.0.0", debug=True) ----------------------------------------- ##requirements.txt文件內(nèi)容 flask redis ----------------------------------------- ##Dockerfile文件內(nèi)容 FROM python:3.4-alpine ADD . /code WORKDIR /code COPY app.py /code RUN pip install -r requirements.txt CMD ["python", "app.py"]
手動部署應用程序
##由于應用程序中,需要redis的支持,首先啟動一個Redis容器 docker run --name myredis -d -p 6379:6379 redis ##使用docker build編譯Dockerfile docker build -t myapplication . ##使用docker run命令啟動應用程序,并使用--link參數(shù)連接到上面的redis容器中 docker run --name myapp_using_redis -p 5000:5000 --link myredis:redis -d myapplication 其中:--link參數(shù)中的: myredis:是上面的啟動的Redis容器 redis:是這個Redis的容器的別名(可以看成是HostName) ##通過網(wǎng)址http://192.168.15.133:5000訪問應用程序 ##刷新頁面,計數(shù)器會自增。
利用docker-compose快速部署Python開發(fā)環(huán)境
而事實上,我們可以使用更加簡化的方式來定義我們的容器組合管理,使用Docker-compose來定義我們的容器組合關(guān)系。目錄結(jié)構(gòu)下,包含以下文件:
其中,docker-compose.yml文件內(nèi)容如下:
version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis"
執(zhí)行docker-compose up來啟動應用,訪問應用程序: http://192.168.15.133:5000/
從這里例子中我們可以看到,通過Docker Compose的YAML配置文件,我們把兩個相關(guān)的Service(web和redis)進行了服務(wù)編排,從而簡化的應用的部署。
以上是“怎么使用Docker Compose進行服務(wù)編排”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!