Docker学习高级篇04-Compose容器编排

0x00 简介

1、是什么?

Docker-compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

只要是集群了,少说都是7,8个。Compose是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系,然后只要一个命令,就能同时启动/关闭这些容器。

2、能干嘛?

docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独地分割开来,但是这样我们又面临了一个问题?

如果我需要同时部署好多个服务,但是每个都要单独写Dockerfile然后再构建镜像吗?这样累都累死了。所以docker官方给我们提供了docker-compose多服务部署的工具。

例如要实现一个web微服务项目,除了web服务容器本身,往往还需要加上后端的数据库mysql服务容器。redis服务器,注册中心eureka,什么卡夫卡,甚至还包括负载均衡容器等等。

Compose允许用户通过一个单独的都docker-compose.yml模版文件(YAML格式)来定义一组相关联的应用容器为一个项目(project)。可以很容易地用一个配置文件定义一个多容器的应用。然后使用一条指令安装这个应用的所有依赖。完成构建。Docker-Compose解决了容器与容器之间如何管理编排的问题。

Java spring

Java里面需要对象,就new一个,但是对象多了就难以管理,如何统一管理,就需要applicationContext.xmlbean

Docker学习高级篇04-Compose容器编排

docker-compose

Docker需要一个容器就run一个,但是越来越多。也涉及到对象的启动顺序和前提条件等。我能否一键启动,一键stop等

Docker学习高级篇04-Compose容器编排

3、官网?

介绍compose如何编写:https://docs.docker.com/compose/compose-file/compose-file-v3

下载安装的地方:https://docs.docker.com/compose/install/

docker-compose推荐使用V3,不要使用V2,但是要与docker的版本匹配才行。

Docker学习高级篇04-Compose容器编排

4、安装与卸载?

1、Run this command to download the current stable release of Docker Compose:

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2、添加执行权限

chmod +x /usr/local/bin/docker-compose

3、验证

docker-compose --version

Docker学习高级篇04-Compose容器编排

4、卸载

如果使用curl的方式安装:

sudo rm /usr/local/bin/docker-compose

如果使用pip安装的:

pip uninstall docker-compose

Compose核心概念

1文件, 2要素

1文件:docker-compose.yml

两要素

服务(service)

一个个应用容器实例,比如订单微服务、库存微服务、mysql容器

工程(project)

由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。

Docker学习高级篇04-Compose容器编排

docker-compose up 等价于,多个docker run

Compose使用的三个步骤

1、编写dockerfile定义各个微服务应用并构建出对应的镜像文件

2、使用docker-compose.yml定义一个完整业务单元,安排好整体应用中的各个容器服务

3、最后,执行docker-compose up命令来启动并运行整个应用程序,完成一键部署上线

Compose常用命令

docker-compose -h 	#查看帮助
docker-compose up 	#启动所有docker-compose服务
docker-compose up -d	#启动所有docker-compose服务并后台运行
docker-compose down		#停止并删除容器、网络、卷、镜像
docker-compose exec yml里面的服务ID	#进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务ID /bin/bash	
docker-compose ps	#展示当前docker-compose编排过的运行的所有容器
docker-compose top	#展示当前docker-compose编排过的容器进程

docker-compose logs	yml里面的服务ID 	#查看容器输出日志
docker-compose config	#检查配置
docker-compose config -q	#检查配置,有问题才有输出
docker-compose restart	#重启服务
docker-compose start	#启动服务
docker-compose stop		#停止服务
上一篇:Quantaxis docker


下一篇:MySQL内核月报 2014.12-MySQL· 性能优化·thread pool 原理分析