Docker之十四:Docker Compose

什么是 Compose ?

Compose 负责实现基于 Docker 容器的多应用服务的快速编排,它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组关联的应用容器为一个服务栈(stack)。

Compose 中的几个重要概念

  • 任务(task):一个容器被称为一个任务。任务拥有独一无二的 ID,在同一个服务中的多个任务序号依次递增。
  • 服务(service):某个相同的应用镜像的容器副本集合,一个服务可以横向扩展为多个容器实例。
  • 服务栈(sack):由多个服务组成,相互配合完成特定业务,如 Web 应用服务、数据库服务共同构成 Web 服务栈,一般由一个 docker-compose.yml 文件定义。

Compose 默认管理对象是服务栈通过子命令对栈中的多个服务进行便捷的生命周期管理。

Linux 安装 Compose

Windows 和 MacOS 的桌面版 Docker 已经默认安装了 Compose,这里我们只说明 Linux(以 Ubuntu 系统为例)环境下 Compose 的安装方法。

pip 安装

Compose 可以通过 Python 的 pip 工具进行安装,前提是需要新安装pip,如果系统没有安装的话。

# 在已经安装了 python3 的基础上执行下面的命令,即可安装 pip
$ sudo apt install python3-pip

安装 Compose:

$ sudo pip install -U docker-compose

查看 Compose 版本:

$ docker-compose -v

Compose 版本
卸载 Compose:

$ sudo pip uninstall docker-compose

pip 卸载 Compose

二进制包安装

Step1、下载 Docker Compose 稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

下载 conpose

Step2、赋权限和创建软连接:

# 赋可执行权限
$ sudo chmod a+x /usr/local/bin/docker-compose
# 创建软链接
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Step3、查看 Compose 版本:

$ docker-compose version

查看版本
如果想要卸载二进制安装的 Docker Compose,只需要删除下载的 /usr/local/bin/docker-compose,如果创建了软链接也一并删除即可。

Compose 命令说明

执行 docker-compose help 可以查看 compose 命令的使用格式。

  1. 指令格式:
    docker-compose 指令格式

  2. OPTIONS:
    docker-compose options

  3. COMMANDS:
    docker-compose commands

Compose 环境变量

Compose 环境变量
环境变量可以用来配置 Compose 的行为。以 DOCKER_ 开头的变量和用来配置 Docker 命令行客户端的使用一样。

Compose 模板文件

默认的 Compose 模板文件称为 docker-compose.yml,格式为 YAML。
常用的 yml 配置指令如下图所示:
Compose 模板文件指令

应用案例

一个简单的应用

  1. 创建项目目录 compose/test。
  2. 在test目录下创建 python 程序 app.py:
    app.py
  3. 在 test 目录下创建 requirements.txt 文件,文件内容为:
    requirements.txt
  4. 创建 Dockerfile 文件:
    Dockerfile
  5. 创建 docker-compose.yml 文件
    docker-compose.yml
  6. 执行构建
$ sudo docker-compose up

构建完成
7. 访问 http://192.168.194.132:5000/
访问端口
终端输出

Web 负载均衡

一个 Haproxy 作为负载均衡器,后端挂载三个 web 容器。

  1. 创建项目目录 haproxy_web、aproxy_web/web、haproxy_web/haproxy。
  2. 在 haproxy_web/web 创建 web 的 Dockerfile 文件,并编辑一个 python 程序 index.py。
    web
  3. haproxy_web/haproxy 目录创建 Haproxy 的配置文件:
    haproxy
  4. 在 haproxy_web 目录创建和编辑 docker-compose.yml 文件:
    docker-compose.yml
  5. 执行构建
$ sudo docker-compose up
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二流人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值