Docker Compose

92 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1. Compose

使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker builddocker run 等命令操作容器。

然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,这样效率很低,也不方便管理。并且例如要实现一个Web微服务项目,除了Web服务容器本身,往往还需要再加上后端的数据库mysql服务容器,redis服务器,注册中心eureka,甚至还包括负载均衡容器等等。

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

使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具。可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

2. 安装 Docker Compose

docs.docker.com/compose/ins…

1、运行以下命令下载 Docker Compose 的当前稳定版本:

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

2、对二进制文件应用可执行权限:

sudo chmod +x /usr/local/bin/docker-compose

3、测试是否安装成功

docker-compose --version

卸载

sudo rm /usr/local/bin/docker-compose

3. Compose核心概念

  • 一文件:docker-compose.yml

  • 两要素

    • 服务(service):一个个应用容器实例,比如订单微服务、库存微服务、mysql容器、nginx容器或者redis容器
    • 工程(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。

4. Compose使用步骤

  • 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
  • 使用docker-compose.yml定义一个完整业务单元,安排好整体应用中的各个容器服务。
  • 最后,执行docker-compose up命令来启动并运行整个应用程序,完成一键部署上线

5. 常用命令

命令描述
docker-compose -h查看帮助
docker-compose up启动所有docker-compose服务
docker-compose up -d启动所有docker-compose服务并后台运行
docker-compose down停止并删除容器、网络、卷、镜像
docker-compose exec yml里面的服务id进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps展示当前docker-compose编排过的运行的所有容器
docker-compose top展示当前docker-compose编排过的容器进程
docker-compose logs yml里面的服务id查看容器输出日志
docker-compose config检查配置
docker-compose config -q检查配置,有问题才有输出
docker-compose restart重启服务
docker-compose start启动服务
docker-compose stop停止服务