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。

相关文章
相关标签/搜索