docker-compose是一个可以定义并运行多个容器的应用程序,docker-compose的配置文件docker-compose.yml可以定义多个服务所需要的环境变量,镜像,网络,数据卷,Dockerfile,依赖的服务等,然后可以使用单个命令启动所有服务,docker-compose将会自动从配置文件读取应用程序所需要配置来启动单个或者多个容器

docker-compose可以帮你减少启动容器所需时间,忘记超长配置参数的命令,也方便再次迁移部署

➜  ~ docker run -itd -v /home/language/:/home/www/ -p 3000:3000 -p 50500:50500 --name webapp -e ./.env -u docker

Docker-Compose特性:

可以让你在单个主机上部署多个独立的环境

当创建容器时自动保留你的数据卷

定义环境和变量

在单个主机上部署多个独立环境

docker-compose使用项目名称隔离环境,你可以使用不同的项目名称作为不同的上下文

在开发的主机上,可能需要创建同一环境多个副本

在持续集成(CI)的服务器上,让构建环境隔离,你可以给项目设置构建版本号

在共享主机或者开发主机上,可以让不同的项目使用同样的服务名互不干扰

当创建容器时自动保留你的数据卷

docker-compose创建容器时,如果它找到上次运行的容器,它会自动复制旧容器的数据到新的容器,docker-compose会保留你所有数据卷,保证数据不会在主机上丢失

仅在容器发生变化时重新创建容器

当你重启服务时,容器没有发生变化,Compose重用已存在的容器,这意味你可以快速的切换环境

定义环境和变量

docker-compose的配置文件支持变量,可以在不同环境或者创建自定义变量,也可以extends字段扩展docker-compose的配置文件

安装docker-compose

➜  ~ sudo curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

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

测试安装

➜  ~ docker-compose --version
 docker-compose version: 1.8.1