Docker Compose
常用命令
docker-compose
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
- -f,–file FILE指定Compose模板文件,默认为docker-compose.yml,可以多次指定。
- -p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。
- -x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9+版本)
- -x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9+版本)
- -verbose输出更多调试信息
- -v,–version打印版本并退出
docker-compose up
docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
- -d 在后台运行服务容器
- –no-color 不使用颜色来区分不同的服务的控制输出
- –no-deps 不启动服务所链接的容器
- –force-recreate 强制重新创建容器,不能与–no-recreate同时使用
- –no-recreate 如果容器已经存在,则不重新创建,不能与–force-recreate同时使用
- –no-build 不自动构建缺失的服务镜像
- –build 在启动容器前构建服务镜像
- –abort-on-container-exit 停止所有容器,如果任何一个容器被停止,不能与-d同时使用
- -t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)
- –remove-orphans 删除服务中没有在compose文件中定义的容器
–scale SERVICE=NUM 设置服务运行容器的个数,将覆盖在compose中通过scale指定的参数
docker-compose up 启动所有服务 docker-compose up -d 在后台所有启动服务 -f 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定 docker-compose -f docker-compose.yml up -d docker-compose ps 列出项目中目前所有的容器 docker-compose start 启动已经存在的服务容器
简洁
docker build/run 手动操作,单个容器
微服务,100个微服务,依赖关系
Docker Compose 来轻松高效管理容器,定义多个容器
作用:批量容器编排
Compose 是Docker 官方的开源项目,需要安装
Dckerfile 让程序在任何地方运行,web服务:redis mysql nginx ....多个容器
Compose
#A docker-compose.yml looks like this:
version: "3.9" # optional since v1.27.0
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
docker-compose up 100个服务
Compose:
- 服务services,容器,应用(web、redis、mysql....)
- 项目project,一组关联的容器。博客。(web、mysql...)
安装
https://docs.docker.com/compose/install/
体验
https://docs.docker.com/compose/gettingstarted/
- 应用 app.py
- Dockerfile应用打包为镜像
- Docker-compose yaml文件(定义整个服务,需要的环境,web、redis)完整的服务
启动compose 项目(docker-compose up)
流程
- 创建网络
- 执行yaml
启动服务
yaml文件编写
#3层 version:'版本' services:'服务' 服务1:web #服务配置 images build network ....... 服务2:redis ..... 服务3: ....... #其他配置 网络、卷、全局规则
Docker Swarm
集群方式部署