本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1. Compose
使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。
然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,这样效率很低,也不方便管理。并且例如要实现一个Web微服务项目,除了Web服务容器本身,往往还需要再加上后端的数据库mysql服务容器,redis服务器,注册中心eureka,甚至还包括负载均衡容器等等。
Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具。可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。
2. 安装 Docker Compose
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 | 停止服务 |