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监控系统
嗯。有时间我会在这里加一个案例! 撒花,撒花,撒花!
|