1. 程式人生 > >Docker $ Docker 三劍客:Docker-Compose

Docker $ Docker 三劍客:Docker-Compose

一.Docker-Compose 簡介

簡介

1.Docker官方三劍客專案之一。
2.負責快速部署分散式應用。
3.定義和執行多個Docker容器應用。
4.微服務一般有多個例項,為了提高效率,使用Compose管理容器,無需每個微服務都要手動啟停。

功能

1.有時候,我們的一個專案由多個服務,如Web專案,資料庫,負載均衡相互配合完成某項任務,這時就需要docker-compose。
2.通過docker-compose.yml模板檔案定義一組關聯的容器為一個專案(project)。
3.預設管理物件是專案,通過子命令對專案中一組容器進行便捷宣告週期管理。

基本概念

  • 1.服務(service)

1.應用容器,可以包括若干相同映象的容器例項。

  • 2 .專案(project)

1.一組關聯的應用容器組成完整的業務單元。
2.一個專案由多個服務(容器)關聯而成,compose 面向專案進行管理。
3.在docker-compose.yml檔案中定義。

二.實戰(CentOS)

1.下載docker-compose
# curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2.安裝
# chmod +x /usr/local/bin/docker-compose
3.檢視版本
# docker-compose version
5.在任意目錄新建資料夾
# mkdir hlyCompose
6.進入資料夾
# cd hlyCompose
7.新建檔案加入程式碼
# vi 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! 該頁面已被訪問{}  次。\n'.format(count)
if __name__ == "__main__":
       app.run(host="0.0.0.0",debug=True)

儲存退出

8.編寫Dockerfile檔案
# vi Dockerfile
FROM python:3.6-alpine
ADD . /code
WORKDIR /code
RUN pip install redis flask
CMD ["python", "app.py"]
9.編寫docker-compose.yml
# vi docker-compose.yml
version: '3'
services:
   web:
        build:  .
        ports:
            - "5000:5000"

   redis:
       image: "redis:alpine"

在這裡插入圖片描述

10.執行命令
# docker-compose up

在這裡插入圖片描述

11.輸入網址:5000重新整理訪問

完成!

參考https://yeasy.gitbooks.io/docker_practice/content/