Docker系列之六:Docker三剑客之Docker Compose


title: Docker系列之六:Docker三剑客之Docker Compose
categories: Docker
tags:
- Docker
timezone: Asia/Shanghai
date: 2019-02-19

Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用单个命令,您可以从配置中创建并启动所有服务。

Compose适用于所有环境:生产,登台,开发,测试以及CI工作流程。
使用Compose基本上是一个三步过程:
  • 定义您的应用程序环境,Dockerfile以便可以在任何地方进行复制。
  • 定义构成应用程序的服务,docker-compose.yml 以便它们可以在隔离的环境中一起运行。
  • Run docker-compose up和Compose启动并运行整个应用程序。
Compose 中有两个重要的概念:
  • 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。

Compose具有管理应用程序整个生命周期的命令:
  • 启动,停止和重建服务
  • 查看正在运行的服务的状态
  • 流式传输运行服务的日志输出
  • 在服务上运行一次性命令
Compose的特征:
  • 单个主机上的多个隔离环境
  • 创建容器时保留卷数据
  • 仅重新创建已更改的容器
  • 变量和在环境之间移动合成
单个主机上的多个隔离环境

Compose使用项目名称将环境彼此隔离。您可以在几个不同的上下文中使用此项目名称:

  • 在开发主机上,创建单个环境的多个副本,例如当您要为项目的每个功能分支运行稳定副本时
  • 在CI服务器上,为了防止构建相互干扰,可以将项目名称设置为唯一的构建号
  • 在共享主机或开发主机上,以防止可能使用相同服务名称的不同项目相互干扰

默认项目名称是项目目录的基名。您可以使用-p命令行选项或 COMPOSE_PROJECT_NAME环境变量设置自定义项目名称 。

创建容器时保留卷数据

Compose会保留您的服务使用的所有卷。当docker-compose up 运行时,如果发现任何集装箱从之前的运行,它会将从旧容器到新容器的体积。此过程可确保您在卷中创建的任何数据都不会丢失。

仅重新创建已更改的容器

Compose缓存用于创建容器的配置。当您重新启动未更改的服务时,Compose将重新使用现有容器。重用容器意味着您可以非常快速地更改环境。

第一步:安装

https://github.com/docker/compose/releases

1.安装
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

docker-compose --version
2.安装命令自动补齐
curl -L https://raw.githubusercontent.com/docker/compose/1.23.2/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
exit
3.卸载
rm /usr/local/bin/docker-compose

第二步:使用

docker-compose up
docker-compose up -d        ## 在后台运行服务,并使用``docker-compose ps``以查看当前正在运行的内容:
docker-compose run web env  ## 执行``web env``命令后退出。
docker-compose stop         ## 停止服务
docker-compose down --volumes   ## 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值