1.什麼是DockerCompose?

編排和配置容器集羣的工具。

編排:定義被部署的對象的各組成部分之間的耦合關係,部署流程中各個動作的執行順序,部署過程所需要的依賴文件和被部署文件的存儲位置和獲取方式,以及如何驗證部署成功。這些信息都會在編排工具中以指定的格式定義並保存下來,從而保證這個流程可以在新的環境中快速的復現。

場景:redis容器,tomcat容器,nginx容器,mysql容器,這4個容器的啟動是有順序性的,docker compose就是為了組合啟動的,而不是手動來啟動。(本例子講的是2個容器,redis和web)

2.Docker Compose安裝

下載docker-compose 二進位文件

curl -L github.com/docker/compo`uname-s`-`uname -m` > /usr/local/bin/docker-compose && chmod +x/usr/local/bin/docker-compose

黑魔法:

下載地址:github.com/docker/compo

可以訪問外網的環境,在線安裝省心

還有一種伺服器在內網,下載後安裝

3.DockerCompose使用入門

準備環境

1) 創建測試項目文件夾

mkdir composetest

cd composetest

默認python2.7在centos都安裝了,就用python來演示,演示之前需要安裝pip工具,類似java的maven管理python模塊的工具

2) 編輯app.py並保存(描述:簡單的一個httpserver,主要是為了類似tomcat的一個sevlet,當訪問一次,redis節點就增加一個,就可以看到相應的輸出)

from flask import Flask

from redis import Redis

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)

3) 在項目目錄創建requirements.txt並保存

flask

redis

利用dockerfile創建docker鏡像(重頭戲)

FROM python:2.7

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

CMD python app.py

docker build -t web .

定義服務

創建docker-compose.yml文件

Compose文件定義了2個服務,web和redis。

Web服務:

1 從當前目錄下的dockerfile創建

2 容器的5000埠與宿主機5000埠綁定

3 將項目目錄與容器內的/code目錄綁定

4 web服務與redis服務建立連接

version: 2

services:

web:

build: .

ports:

- "5000:5000"

volumes:

- .:/code

depends_on:

- redis

redis:

image: redis

通過compose運行app服務

docker-compose up

前臺啟動

備註:

docker-compose up –d (後臺啟動)

docker-compose stop (停止運行)

Compose命令集:docs.docker.com/compose

往期docker學習:

認識docker

核心概念和安裝

鏡像的常用操作

容器的基本操作

倉庫

數據卷

網路

Dockerfile

git入門

Jenkins使用

Jenkins+git+docker


推薦閱讀:
相關文章