Docker Compose安裝以及入門


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

Compose 簡介

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

使用一個 Dockerfile 模板文件,可以讓用戶很方便的定義一個單獨的應用容器。然而,在日常工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況。例如要實現一個 Web 項目,除了 Web 服務容器本身,往往還需要再加上后端的數據庫服務容器,甚至還包括負載均衡容器等。

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

Compose 中有兩個重要的概念:

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

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

Compose 項目由 Python 編寫,實現上調用了 Docker 服務提供的 API 來對容器進行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 來進行編排管理。

安裝與卸載

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

二進制包安裝

在 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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM