十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要為大家展示了“怎么使用Docker Compose進(jìn)行服務(wù)編排”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么使用Docker Compose進(jìn)行服務(wù)編排”這篇文章吧。
Docker Compose是一個用來定義和運(yùn)行復(fù)雜應(yīng)用的Docker工具。一個使用Docker容器的應(yīng)用,通常由多個容器組成。使用Docker Compose不再需要使用shell腳本來啟動容器,而使用服務(wù)編排的方式來管理容器。
Docker Compose 通過一個配置文件來管理多個Docker容器,在配置文件中,所有的容器通過services來定義,然后使用docker-compose腳本來啟動,停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器,非常適合組合使用多個容器進(jìn)行開發(fā)的場景。
Docker Compose的核心是通過一個YAML文件來管理多個Docker容器,在配置文件中,所有的容器通過services來定義。
YAML (YML)的意思其實(shí)是:”Yet Another Markup Language”(仍是一種置標(biāo)語言)的縮寫。YAML的語法和其他高階語言類似,并且可以簡單表達(dá)清單、散列表,標(biāo)量等資料形態(tài)。它使用空格縮排和大量依賴外觀的特色,特別適合用來表達(dá)或編輯數(shù)據(jù)結(jié)構(gòu)、各種設(shè)定檔、傾印除錯內(nèi)容、文件大綱(例如:許多電子郵件標(biāo)題格式和YAML非常接近)??梢允怯?.yml 或 .yaml 作為文件擴(kuò)展名。
官方文檔: https://docs.docker.com/compose/install
執(zhí)行下面的語句進(jìn)行安裝
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進(jìn)行部署所帶來的好處。
首先,我們需要創(chuàng)建我們的應(yīng)用程序,實(shí)現(xiàn)一個簡單的計(jì)數(shù)器功能。這里我們需要創(chuàng)建三個文件:app.py、requirements.txt和Dockerfile,具體內(nèi)容如下。
##app.py應(yīng)用程序代碼 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"]
手動部署應(yīng)用程序
##由于應(yīng)用程序中,需要redis的支持,首先啟動一個Redis容器 docker run --name myredis -d -p 6379:6379 redis ##使用docker build編譯Dockerfile docker build -t myapplication . ##使用docker run命令啟動應(yīng)用程序,并使用--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訪問應(yīng)用程序 ##刷新頁面,計(jì)數(shù)器會自增。
利用docker-compose快速部署Python開發(fā)環(huán)境
而事實(shí)上,我們可以使用更加簡化的方式來定義我們的容器組合管理,使用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來啟動應(yīng)用,訪問應(yīng)用程序: http://192.168.15.133:5000/
從這里例子中我們可以看到,通過Docker Compose的YAML配置文件,我們把兩個相關(guān)的Service(web和redis)進(jìn)行了服務(wù)編排,從而簡化的應(yīng)用的部署。
以上是“怎么使用Docker Compose進(jìn)行服務(wù)編排”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!