Docker-学习总结(三剑客之Docker-compose)

本文介绍了Docker Compose的背景、概念及其在容器编排中的作用。Docker Compose是一个用于管理多容器应用的工具,通过YAML文件定义服务,实现应用部署。文中还列举了相关命令,并提供了一个使用Docker Compose管理nginx和haproxy镜像,实现高可用和负载均衡的实战练习。
摘要由CSDN通过智能技术生成

相关网站

  • Docker Compose官方:https://docs.docker.com/compose/
  • GitHub资源:https://github.com/docker/compose/releases
  • 阿里云资源:http://mirrors.aliyun.com/docker-toolbox/linux/compose/

背景

  • Docker Compose 的前身是 Fig。Fig 是一个由 Orchard 公司开发的强有力的工具,在当时是进行多容器管理的最佳方案。Fig 是一个基于 Docker 的 Python 工具,允许用户基于一个 YAML 文件定义多容器应用,从而可以使用 fig 命令行工具进行应用的部署。Fig 还可以对应用的全生命周期进行管理。内部实现上,Fig 会解析 YAML 文件,并通过 Docker API 进行应用的部署和管理。后来Docker 公司收购了 Orchard 公司,并将 Fig 更名为 Docker Compose。命令行工具也从 fig 更名为 docker-compose,并自此成为绑定在 Docker 引擎之上的外部工具。虽然它从未完全集成到 Docker 引擎中,但是仍然受到广泛关注并得到普遍使用。直至今日,Docker Compose 仍然是一个需要在 Docker 主机上进行安装的外部 Python 工具。

概念

  • Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排
  • Docker Compose 是一种编排服务,基于python语言实现
  • Docker Compose 实现容器编排,需要先使用 YAML 文件来配置你的应用服务,然后, 将YAML 文件交由docker-compose命令处理,Docker Compose 就会基于 Docker 引擎 API 完成应用的部署。
  • Docker Compose 将所管理的容器分为三层:项目(project),服务(service)以及容器(contaienr)
    • 项目【project】:Docker Compose 运行的目录下的所有文件(docker-compose.yml, extends 文件或环境变量文件等)组成一个工程(若无特殊指定工程名即为当前目录名);一个工程当中可包含多个服务
    • 服务【service】:服务中定义了容器运行的镜像,参数,依赖一个服务当中可包括多个容器实例
    • 容器【contaienr】:真实承载内容的容器
  • Docker Compose 并没有解决负载均衡的问题,需要借助其他工具实现服务发现及负载均衡
  • Docker Compose 是用来在单机上编排容器(定义和运行多个容器,使容器能互通)

相关命令

[root@node1 compose]# docker-compose --help
Define and run multi-container applications with Docker.
#使用docker,定义运行多容器应用
Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help
#格式
Options:
  -f, --file FILE             Specify an alternate compose file|指定一个可选的Compose yaml文件(默认:docker-compose.yml)
                              (default: docker-compose.yml)
  -p, --project-name NAME     Specify an alternate project name|指定项目名称(默认:当前目录名称)
                              (default: directory name)
  --verbose                   Show more output|展示更多信息
  --log-level LEVEL           Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)|设置日志等级
  --no-ansi                   Do not print ANSI control characters
  -v, --version               Print version and exit|打印版本信息并且退出
  -H, --host HOST             Daemon socket to connect to|连接守护进程套接字

  --tls                       Use TLS; implied by --tlsverify
  --tlscacert CA_PATH         Trust certs signed only by this CA
  --tlscert CLIENT_CERT_PATH  Path to TLS certificate file
  --tlskey TLS_KEY_PATH       Path to TLS key file
  --tlsverify                 Use TLS and verify the remote
  --skip-hostname-check       Don't check the daemon's hostname against the
                              name specified in the client certificate
  --project-directory PATH    Specify an alternate working directory
                              (default: the path of the Compose file)
  --compatibility             If set, Compose will attempt to convert deploy
                              keys in v3 files to their non-Swarm equivalent

Commands:
  build              Build or rebuild services|构建或者重建服务
  bundle             Generate a Docker bundle from the Compose file
  config             Validate and view the Compose file|验证和查看配置文件,可以将配置信息显示出来
  create             Create services|创建服务
  down               Stop and remove containers, networks, images, and volumes|停止并且删除容器、服务、网络设置、镜像、数据卷
  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|设置服务需要启动的容器数量
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值