Docker Compose安裝以及入門

Docker Compose 是 Docker 官方編排(Orchestration)項目之一,負責快速在集羣中部署分佈式應用。python

Compose 簡介

Compose 項目是 Docker 官方的開源項目,負責實現對 Docker 容器集羣的快速編排。Compose 定位是 「定義和運行多個 Docker 容器的應用(Defining and running multicontainer Docker applications)」,其前身是開源項目 Fig。git

使用一個 Dockerfile 模板文件,可讓用戶很方便的定義一個單獨的應用容器。然而,在平常工做中,常常會碰到須要多個容器相互配合來完成某項任務的狀況。例如要實現一個 Web 項目,除了 Web 服務容器自己,每每還須要再加上後端的數據庫服務容器,甚至還包括負載均衡容器等。github

Compose 剛好知足了這樣的需求。它容許用戶經過一個單獨的 docker-compose.yml 模板文件(YAML 格式)來定義一組相關聯的應用容器爲一個項目(project)。web

Compose 中有兩個重要的概念:redis

  • 服務 ( service ):一個應用的容器,實際上能夠包括若干運行相同鏡像的容器實例
  • 項目 ( project ):由一組關聯的應用容器組成的一個完整業務單元,在 dockercompose.yml 文件中定義。

Compose 的默認管理對象是項目,經過子命令對項目中的一組容器進行便捷地生命週期管理。可見,一個項目能夠由多個服務(容器)關聯而成, Compose 面向項目進行管理docker

Compose 項目由 Python 編寫,實現上調用了 Docker 服務提供的 API 來對容器進行管理。所以,只要所操做的平臺支持 Docker API,就能夠在其上利用 Compose 來進行編排管理。數據庫

安裝與卸載

Compose 能夠經過 Python 的包管理工具 pip 進行安裝,也能夠直接下載編譯好的二進制文件使用,甚至可以直接在 Docker 容器中運行。前兩種方式是傳統方式,適合本地環境下安裝使用;最後一種方式則不破壞系統環境,更適合雲計算場景。Docker for Mac 、 Docker for Windows 自帶 docker-compose 二進制文件,安裝 Docker 以後能夠直接使用。Linux 系統請使用如下介紹的方法安裝。flask

二進制包安裝

在 Linux 上的也安裝十分簡單,從 官方 GitHub Release 處直接下載編譯好的二進制文件便可。後端

例如,在 Linux 64 位系統上直接下載對應的二進制包。緩存

sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

對於卸載若是是二進制包方式安裝的,刪除二進制文件便可。

sudo rm /usr/local/bin/docker-compose

PIP 安裝

這種方式是將 Compose 看成一個 Python 應用來從 pip 源中安裝。執行安裝命令:

sudo pip install -U docker-compose

使用PIP安裝的時候,卸載可使用以下命令:

sudo pip uninstall docker-compose

簡單入門

下面咱們模擬一個網站,該網站的做用是可以記錄頁面的訪問次數。咱們使用Flask開發,緩存使用redis

編寫wen應用

新建一個文件夾web,在該文件夾下建立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! {}'.format(count)

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

編寫Dockerfile文件

FROM python:3.6-alpine
ADD . /code
WORKDIR /code
RUN pip install redis flask
CMD ["python","app.py"]

docker-compose.yml

編寫 docker-compose.yml 文件,這個是 Compose 使用的主模板文件。

version: '3'
services:
    web:
        build: .
        ports:
            - "5000:5000"
    redis:
        images: "redis:alpine"

運行 compose 項目

docker-compose up

此時訪問本地 5000 端口,每次刷新頁面,計數就會加 1。

相關文章
相關標籤/搜索