1. 程式人生 > >跟我一起學docker(12)--docker compose的使用

跟我一起學docker(12)--docker compose的使用

urn 什麽是 releases 存儲 docke mkdir auto microsoft class

1.什麽是DockerCompose?

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

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

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

2.Docker Compose安裝

下載docker-compose 二進制文件

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

黑魔法:

下載地址:https://github.com/docker/compose/releases

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

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片


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

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片


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命令集:https://docs.docker.com/compose/reference/


跟我一起學docker(12)--docker compose的使用