什么是docker compose
compose是定义和运行由多个容器(multi container)组成的应用
的工具。
compose中有两个概念server
: 一个应用的容器。project
: 由一组相关的应用容器组成的整个业务项目。
为什么需要docker compose
我们在开发一个project时,这个项目除了app service,一般还需要database,cache等其他的service,那么就会需要多个container(容器)来运行这些service。如果我们对每个service,都单独使用docker CLI,那是多么麻烦的一件事。
利用compose,我们可以只使用一个yaml
文件来配置project里的所service,然后通过一条命令,就可以根据yaml
里的配置,创建容器,来运行所有的service。
使用compose
三个步骤:
- 为app service编写
Dockerfile
。 - 在文件
docker-compose.yml
里定义所有的service,这样这些service可以在一个隔离的环境中,一起运行。 - 执行
docker-compose up
后,compose会启动运行整个Project。
一个docker-compose.yml
的示例。
version: '2.0'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
常用命令
compose命令的对象,默认是project,也可以指定project中的service。
基本格式:
docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]