一、Docker Compose 简介

Docker Compose是什么?

Docker Compose是一个能一次性定义和管理多个Docker容器的工具。

详细地说:

Compose中定义和启动的每一个容器都相当于一个服务(service)

Compose中能定义和启动多个服务,且它们之间通常具有协同关系

管理方式:

使用YAML文件来配置我们应用程序的服务。

使用单个命令(docker-compose up),就可以创建并启动配置文件中配置的所有服务。

Docker Compose 工作原理

Docker Compose安装

Docker for Mac与Docker for Windows自带docker-compose

Linux下需要单独安装:

第一步:sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

第二步:sudo chmod +x /usr/local/bin/docker-compose 终端中使用docker-compose --version查看安装的版本 这里示例安装版本是1.21.2,很可能您看到这里时,已经出现更新的版本,因此建议换成最新版本。查看最新版本。

其他安装方法查看

Docker Compose CLI

利用docker-compose --help查看或者查看官方文档

对比后会发现:Docker Compose CLI的很多命令的功能和Docker Client CLI是相似的。最主要的区别就是前者能一次性运行管理多个容器,后者只能一次管理一个。

二、了解 Docker Compose File

Docker Compose File版本

Docker Compose File 有多个版本,基本是向后兼容的,但也有极个别配置项高版本中没有。

在docker-compose.yml一开始就需要利用version关键词标明当前file使用的版本

Docker Compose File TOP配置参数概览

Docker Compose File 顶级配置项:

version:指定Docker Compose File版本号

services:定义多个服务并配置启动参数

volumes:声明或创建在多个服务中共同使用的数据卷对象

networks:定义在多个服务中共同使用的网络对象

configs:声明将在本服务中要使用的一些配置文件

secrets:声明将在本服务中要使用的一些秘钥、密码文件

x-***:自定义配置。主要用于复用相同的配置。

更多详细配置

Docker Compose File 参考示例

三、Docker Compose 应用

Docker Compose 案例一   小型web服务项目搭建

步骤:

搭建一个flask的小型web项目

根据项目环境,利用Dockerfile构建镜像

撰写docker-compose.yaml配置文件,启动项目

Docker Compose 案例二   单机环境ELK系统搭建(一)

ELK工作原理介绍

Docker Compose 案例二  单机环境ELK系统搭建(二)

步骤:

配置单机版的docker-compose.yaml文件(ELK镜像地址)

利用docker-compose up启动环境

Docker Compose 案例三  多主机环境ELK系统搭建(一)

Swarm 介绍

Docker Compose 案例三  多主机环境ELK系统搭建(二)

集群版Docker Compose工作原理

Docker Compose 案例三  多主机环境ELK系统搭建(三)

步骤

使用docker swarm配置多个docker node集群节点

配置集群版ELK的docker-compose.yaml文件

利用docker stack deploy部署集群版ELK环境

Docker核心技术之Docker Compose相关推荐

  1. 深入剖析docker核心技术(namespace、cgroups、union fs、网络)

    深入剖析docker核心技术 前言 docker概述 为什么要用docker Namespace 概述 实现 操作方法 隔离性 常用操作 Cgroups 概述 实现 配额和度量 CPU 子系统 Lin ...

  2. 容器技术介绍之docker核心技术概述

    容器简单来说是一种沙盒技术,将应用"装"进沙盒中,像集装箱一样,把应用封装起来,使得应用之间不会相互干扰,而放进沙盒中的应用也方便"搬家".本文基于docker ...

  3. Docker核心技术学习笔记

    Docker核心技术 文章目录 Docker核心技术 一 .Docker简介 二.Docker安装 前提说明 Docker 的基本组成 安装 centos 7 安装docker 启动hello-wor ...

  4. 深入浅出Docker(一):Docker核心技术预览

    [编者按]Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种 ...

  5. Docker(八):Docker Compose

    Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然 ...

  6. Docker核心技术

    整理自<Docker技术入门与实践>(杨保华 戴王剑 曹亚仑) - Docker核心技术一文. Docker是一种基于Linux Container(LXC)技术实现的容器虚拟化技术,现又 ...

  7. Docker(一):Docker核心技术预览

    开始学习docker了,想写一篇docker技术介绍的纯理论文章,发现以下网站的文档写的特别好,就直接引用了,文章转载自: http://www.infoq.com/cn/DockerDeep htt ...

  8. Docker(四):Docker 三剑客之 Docker Compose

    前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...

  9. 文末送书啦!| Device Mapper,那些你不知道的Docker核心技术

    戳蓝字"CSDN云计算"关注我们哦! 接触Docker 比较早的同学应该知道,Docker 在最开始只能在Ubuntu和Debian等少数的Linux 发行版上运行,并且在这些发行 ...

最新文章

  1. 时间复杂度与空间复杂度分析
  2. redis常用优化及持久化到硬盘
  3. 设计模式 - Strategy
  4. 关于路径搜索的算法, 可能用到
  5. 插入的数据不能时时查询到_数据库原理笔记
  6. python bottle部署g_python bottle框架(WEB开发、运维开发)教程 | linux系统运维
  7. 训练dnn_[预训练语言模型专题] MTDNN(KD) : 预训练、多任务、知识蒸馏的结合
  8. padding三个值含义
  9. 诗与远方:无题(三十九)
  10. centos 7 一键安装gitlab
  11. 2016蓝桥杯C++A:剪邮票(抓取法)
  12. 【孪生网络siamfc代码学习】
  13. 应广单片机 c语言,应广单片机 MINI-C编程指南.pdf
  14. Jpa 注解详解 映射详解 一对多 多对一
  15. 问答社区常见三维问题整理
  16. linux 设置创建用户设置密码
  17. 论文精读:MobileNetV2: Inverted Residuals and Linear Bottlenecks
  18. 完美解决Win10 X64非原装版系统打不开CHM文件
  19. MySQL学习笔记:过滤数据+数据过滤
  20. [力扣c语言实现]207. 课程表(拓扑排序)

热门文章

  1. centos7httpd服务的搭建
  2. API pytorch tensorflow
  3. Pytorch的默认初始化分布 nn.Embedding.weight初始化分布
  4. RNN,LSTM,GRU基本原理的个人理解重点
  5. 图像复原的神经网络稀疏表示
  6. 对抗性鲁棒性与模型压缩:ICCV2019论文解析
  7. 微信小程序地图上图片放到下面
  8. Python爬取4399好wan的小游戏!
  9. 「Django」rest_framework学习系列-用户认证
  10. POJ 3268 D-Silver Cow Party