Docker实践07-docker-compose的简介及安装

1. 引入

通过前面的知识,我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器,从而得到一个镜像。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。

使用流程:

创建 docker-compose.yml 配置文件(yaml语法)
使用 docker-compose 来指令管理这个集群

2. 介绍

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排

其代码目前在 https://github.com/docker/compose 上开源

Compose定位是 「定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)」

Compose恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

Compose中有两个重要的概念:

  • 服务 (service):一个应用的容器。
  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
    Compose的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。

Compose项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose来进行编排管理

3. 安装

Compose 支持 Linux、macOS、Windows 10 三大平台。

Compose 可以通过 Python 的包管理工具 pip 进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在 Docker 容器中运行

这里介绍linux的两种安装方法,其他方法可以在官网找到。https://docs.docker.com/compose/install/

1、第一种安装方法(pip)

pip3 install docker-compose

2、通过二进制文件安装

  1. 运行以下命令以下载Docker Compose的当前稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose

安装成功后,可以通过查看版本来确认。

$ docker-compose --version
docker-compose version 1.26.2, build 1110ad01

4、初步使用

1. 术语

首先介绍几个术语

服务 (service):一个应用容器
项目 (project):由一组关联的应用容器组成的一个完整业务单元
可见,一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理

2. 案例

最常见的项目是 web 网站,该项目应该包含 web 应用和数据库

下面我们用 Python 来建立一个能够记录页面访问次数的 web 网站

2.1 创建flask 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! 该页面已被访问 {} 次。\n'.format(count)

if \_\_name__ == "\_\_main__":
    app.run(host="0.0.0.0", debug=True)
2.2 编写Dockerfile

编写 Dockerfile 文件,内容为

FROM python:3.6
ADD ./app.py /home
WORKDIR /home
RUN pip3 install redis flask -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
CMD ["python3", "app.py"]
2.3编写 docker-compose.yml

编写 docker-compose.yml 文件,这个是 Compose 使用的主模板文件

version: '3'
services:
  flask:
    build: .
    ports:
     - "5000:5000"
  redis:
    image: "redis"
  1. 运行&测试
    执行完上述步骤之后,能够看到3个文件

image-20191126084650236

运行 compose 项目
在当前路径下,运行如下命令

docker-compose up

image-20191126085347786

启动成功
image-20191126085417921

效果
此时访问本地 5000 端口,每次刷新页面,计数就会加 1
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值