一、什么是Docker Compose
Compose 项目是Docker官方的开源项目,负责实现Docker容器集群的快速编排,开源代码在https://github.com/docker/compose 上
我们知道使用Dockerfile模板文件可以让用户很方便的定义一个单独的应用容器,其实在工作中,经常会碰到需要多个容器相互配合来完成的某项任务情况,例如工作中的web服务容器本身,往往会在后端加上数据库容器,甚至会有负责均衡器,比如LNMP服务
Compose 就是来做这个事情的,它允许用户通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器为一个项目(project)
Compose 中有两个重要的概念:
- 服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例
- 项目(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml中定义
二、基本原理
Compose 项目是由Python编写的,实际上就是调用了Docker服务提供的API来对容器进行管理,因此,只要所在的操作系统的平台支持Docker API,就可以在其上利用Compose来进行编排管理.
三、rhel7下Docker Compose的安装
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 1
给docker-compose执行权限,运行命令:
chmod +x /usr/local/bin/docker-compose
- 1
检查,运行docker-compose --version,如下:
[root@server1 ~]# docker-compose --version
docker-compose version 1.23.2, build 1110ad01
- 1
- 2
四、docker compose命令
命令
Compose 大部分命令的对象即可以是项目的本身,也可以是指定为项目中的服务或者容器
执行docker-compose [COMMAND] --help
或者docker-compose help [COMMAND]
可以查看命令的帮助信息
具体的使用格式
docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS]
- 1
参数选项
参数 | 含义 |
---|---|
-f,–file | file指定模板文件,默认是docker-compose.yml模板文件,可以多次指定 |
-p,–project-name | name指定项目名称,默认使用所在目录名称作为项目名称 |
–x-networking | 使用Docker的后端可插拔网络特性 |
–x-networking-driver | driver指定网络的后端驱动,默认使用bridge |
–verbose | 输入更多的调试信息 |
-v,–version | 输出版本信息 |
Compose所支持的命令
命令 | 含义 |
---|---|
build | Build or rebuild services (构建项目中的服务容器) |
bundle | Generate a Docker bundle from the Compose file (从Compose文件生成分布式应用程序包) |
config | Validate and view the Compose file (验证并查看Compose文件) |
create | Create services (为服务创建容器) |
down | Stop and remove containers, networks, images, and volumes (停止容器并删除由其创建的容器,网络,卷和图像up) |
events | Receive real time events from containers (为项目中的每个容器流式传输容器事件) |
exec | Execute a command in a running container (这相当于docker exec。使用此子命令,您可以在服务中运行任意命令。默认情况下,命令分配TTY,因此您可以使用命令docker-compose exec web sh来获取交互式提示。) |
help | Get help on a command (获得一个命令的帮助) |
images | Li |