Compose项目是Docker官方的开源项目,负责实现对基于Docker容器的多容器应用服务的快速编排。
Compose项目由python编写,调用了Docker提供的API来对容器进行管理。
代码在:https://github.com/docker/compose
上开源。
Compose常见概念:
- 任务(task):一个容器被称为一个任务,拥有独一无二的ID。
- 服务(service):相同应用镜像的副本集合,一个服务可以横向扩展多个容器实例。
- 服务栈(stack):由多个服务组成,相互配合完成特定业务。
Compose安装部署:
compose安装之前,如果没有docker引擎的话要先装docker。
- 通过pip方式安装compose项目,需要提前安装pip工具
pip install -U docker-compose
- 通过二进制包安装docker-compose项目(本文使用的也是二进制包方式)
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose #安装后可查看版本 docker-compose version docker-compose version 1.29.2, build 5becea4c docker-py version: 5.0.0 CPython version: 3.7.10 OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
- 通过容器方式安装
curl -L https://github.com/docker/compose/releases/download/1.29.2/run.sh >/usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
- 输入
docker-compose -h
可以查看docker-compose的使用
Commands: build Build or rebuild services config Validate and view the Compose file create Create services down Stop and remove resources events Receive real time events from containers exec Execute a command in a running container help Get help on a command images List images kill Kill containers logs View output from containers pause Pause services port Print the public port for a port binding ps List containers pull Pull service images push Push service images restart Restart services rm Remove stopped containers run Run a one-off command scale Set number of containers for a service start Start services stop Stop services top Display the running processes unpause Unpause services up Create and start containers version Show version information and quit
Compose模板文件:
- 默认的模板文件为:docker-compose.yaml,格式为YAML,目前版本为v3
version: '3'
- 命令大概可分为service、network、volumes三部分
- 常用命令:
build:指定dockerfile所在文件夹路径 image:指定镜像名称或ID restart:指定重启策略 networks:所加入的网络 volumes:数据卷所挂载路径 labels:为容器添加docker元数据信息 links:链接到其他服务中的容器 ports:暴露端口信息 environment:设置环境变量 depends_on:指定多个服务间依赖关系 dns:自定义dns服务器 command:覆盖容器启动后默认执行命令 container_name:指定容器名称 。。。 。。。
Compose实用案例:
要下班了,不写新的了,先用一下之前部署的一个zabbix系统吧。
通过docker-compose一键部署zabbix监控系统
嗯。有时间我会在这里加一个案例!
撒花,撒花,撒花!