Docker系列之六:Docker三剑客之Docker Comp
2019-02-23 本文已影响0人
小六的昵称已被使用
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 ##