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