一、什么是Docker Compose?
Docker Compose是一個用來定義和運行復雜應用的Docker工具,一個使用Docker容器的應用,通常由多個容器組成,使用Docker Compose不再需要使用shell腳本來啟動容器,而使用服務編排的方式來管理容器,
Docker Compose
通過一個組態檔來管理多個Docker容器,在組態檔中,所有的容器通過services來定義,然后使用docker-compose腳本來啟動,停止和重啟應用,和應用中的服務以及所有依賴服務的容器,非常適合組合使用多個容器進行開發的場景,
Docker Compose的核心是通過一個YAML檔案來管理多個Docker容器,在組態檔中,所有的容器通過services來定義,
二、什么是YAML檔案?
YAML (YML)的意思其實是:"Yet Another Markup Language"(仍是一種置標語言)的縮寫,YAML的語法和其他高階語言類似,并且可以簡單表達清單、散串列,標量等資料形態,它使用空格縮排和大量依賴外觀的特色,特別適合用來表達或編輯資料結構、各種設定檔、傾印除錯內容、檔案大綱(例如:許多電子郵件標題格式和YAML非常接近),可以是用 .yml 或 .yaml 作為檔案擴展名,
三、部署Docker Compose
- 官方檔案:https://docs.docker.com/compose/install
- 執行下面的陳述句進行安裝
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構建Python Web應用
這里,我們將使用兩種不同的方式:手動部署和利用Docker Compose部署,來說明使用Docker Compose進行部署所帶來的好處,
- 首先,我們需要創建我們的應用程式,實作一個簡單的計數器功能,這里我們需要創建三個檔案:app.py、requirements.txt和Dockerfile,具體內容如下,
##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檔案內容
flask
redis
-----------------------------------------
##Dockerfile檔案內容
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引數連接到上面的redis容器中 docker run --name myapp_using_redis -p 5000:5000 --link myredis:redis -d myapplication 其中:--link引數中的: myredis:是上面的啟動的Redis容器 redis:是這個Redis的容器的別名(可以看成是HostName) ##通過網址http://192.168.15.133:5000訪問應用程式 ##重繪頁面,計數器會自增,

- 利用docker-compose快速部署Python開發環境
而事實上,我們可以使用更加簡化的方式來定義我們的容器組合管理,使用Docker-compose來定義我們的容器組合關系,目錄結構下,包含以下檔案:

其中,docker-compose.yml檔案內容如下:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis"
執行docker-compose up來啟動應用,訪問應用程式:http://192.168.15.133:5000/

從這里例子中我們可以看到,通過Docker Compose的YAML組態檔,我們把兩個相關的Service(web和redis)進行了服務編排,從而簡化的應用的部署,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/5324.html
標籤:其他
