Docker容器之Docker Compose
Docker Compose概述
Compose项目是Docker官方的开源项目,是一个用于定义和运行多个Docker容器应用的工具。负责实现对Docker容器集群的快速编排,其前身是开源项目Fig。它允许用户通过一个单独的docker-compose.yml模板文件来定义一组相关联的应用容器为一个项目。
Compose中的两个重要概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。项目(project):由一组关联的应用容器组成的一个完整业务单元。
Compose的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。命令包括:
- 启动停止和重建服务
- 查看正在运行的服务的状态
- 流式传输运行服务的日志输出
- 在服务上运行一次性命令
Compose项目由python编写,调用Docker服务提供的API对容器进行管理。
Docker Compose的功能特征
单个主机上的多个隔离环境
Compose使用项目名称将环境彼此隔离。可以在几个不同的上下文使用此项目名称,通过命令行docker-compose -p 或者环境变量COMPOSE_PROJECT_NAME设置自定义项目名称。
- 在开发主机上,创建单个环境的多个副本
- 在服务器上,为防止构建相互干扰,可以将项目名称设置为唯一的构建号
- 在共享主机或开发主机上,以防止可能使用相同服务名称的不同项目相互干扰
创建容器时保留卷数据
Compose会保留服务所使用的所有数据卷。使用docker-compose up 运行时,如果发现任何容器从之前的容器运行,将会从旧容器把数据卷复制到新容器,此过程可以确保数据卷中的任何数据不会丢失。
仅重新创建已更改的容器
Compose缓存用于创建容器的配置。当重新启动未更改的服务时,Compose将重新使用现有容器。重用容器意味着可以非常快速地更改换境。
变量在环境之间动态组合
Compose支持Compose文件中的变量,可以使用这些变量为不同环境或不同用户自定义组合。可以使用extends字段或通过创建多个Compose文件来扩展Compose文件。
Compose安装卸载
在Linux环境进行安装(自己的环境ubuntu 19.04)
下载二进制文件,如需不同版本请替换版本号
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
赋予二进制文件执行权限
sudo chmod +x /usr/local/bin/docker-compose
测试安装
docker-compose --version
卸载
sudo rm /usr/local/bin/docker-compose
Compose命令说明
命令基本使用格式
docker-compose [-f arg…] [options] [COMMAND] [ARGS…]
命令选项:
- -f,–file 指定模板文件,默认为docker-compose.yml,可以指定多个
- -p,–project-name NAME指定项目名称,默认使用所在目录名称作为项目名
- –x-networking 使用Docker的可插拔网络后端特性
- –x-network-driver DRIVER指定网络后端的驱动,默认为bridge
- –verbose 输出跟多调试信息
- -v,–version 打印版本并退出
- –log-level LEVEL指定日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
命令 | 说明 |
---|---|
bu |