Docker进阶篇-compose容器编排

一、描述

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

ComposeDocker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。需要定义

一个YAML格式的配置文件docker-compose.yml,配置好多个容器之间的调用关系,然后只需要

一个命令就能同时启动/关闭这些容器。

Docker建议我们每个容器中只运行一个服务,因为Docker容器本身占用资源极少,所以最好是将

每个服务单独的分割开来。但是如果我们需要同时部署多个服务,每个服务单独构建镜像构建容器

就会比较麻烦。所以Docker官方推出了docker-compose多服务部署的工具。

Compose允许用户通过一个单独的docker-compose.yml模板文件来定义一组相关联的应用容器

为一个项目(project)。可以很容易的用一个配置文件定义一个多容器的应用,然后使用一条指

令、安装这个应用的所有依赖,完成构建。

官网:Compose file version 3 reference | Docker Docs

官网下载:Overview of installing Docker Compose | Docker Docs

二、安装Docker-Compose

#这里是在centos 7上安装
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
#若因网络问题无法直接下载,下载的文件放到/usr/local/bin目录下,命名为docker-compose
# 添加写的权限
chmod +x /usr/local/bin/docker-compose
# 查看是否安装成功
docker-compose version  或者  docker-compose --version

 

若要卸载Docker Compose

rm usr/local/bin/docker-compose

这里别卸载。

三、Compose核心概念

文件:docker-compose.yml

服务(service):一个个应用容器实例,比如mysql容器、nginx容器、redis容器等

工程(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml

定义

四、Compose使用的三个步骤

  1. 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
  2. 编写docker-compose.yml,定义一个完整的业务单元,安排好整体应用中的各个容器服务
  3. 执行docker-compose up命令,来启动并运行整个应用程序,完成一键部署上线 

五、Compose常用命令

执行命令时,需要在对应的docker-compose.yml文件所在目录下执行。

  • 查看帮助
docker-compose -h
  • 启动所有docker-compose服务
docker-compose up
  • 启动所有docker-compose服务并后台运行
docker-compose up -d
  • 停止并删除容器、网络、卷、镜像
docker-compose down
  • 进入容器实例内部
# docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose exec yml里面的服务id /bin/bash
  • 展示当前docker-compose编排过的运行的所有容器
docker-compose ps
  • 展示当前docker-compose编排过的容器进程
docker-compose top
  •  查看容器输出日志
docker-compose log yml里面的服务id
  • 检查配置
docker-compose config
# 有问题才输出
docker-compose config -q
  • 重启服务
docker-compose restart
  • 启动服务
docker-compose start
  • 停止服务
docker-compose stop

六、Compose编排微服务

1、编写docker-compose.yml文件

# docker-compose文件版本号
version: "3"# 配置各种容器服务
services:microService:image: fanhe_docker:1.6container_name: ms01  # 容器名称,如果不指定,会生成一个“目录前缀_服务”的容器名ports:- "6001:6001"volumes:- /app/microService:/datanetworks:- springboot_networkdepends_on:  # 配置该容器服务所依赖的容器服务- redis- mysqlredis:image: redis:6.0.8ports:- "6379:6379"volumes:- /app/redis/redis.conf:/etc/redis/redis.conf- /app/redis/data:datanetworks:- springboot_networkcommand: redis-server /etc/redis/redis.confmysql:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: '123456'MYSQL_ALLOW_EMPTY_PASSWORD: 'no'MYSQL_DATABASE: 'db_springboot'MYSQL_USER: 'springboot'MYSQL_PASSWORD: 'springboot'ports:- "3306:3306"volumes:- /app/mysql/db:/var/lib/mysql- /app/mysql/conf/my.cnf:/etc/my.cnf- /app/mysql/init:/docker-entrypoint-initdb.dnetworks:- springboot_networkcommand: --default-authentication-plugin=mysql_native_password # 解决外部无法访问networks:# 创建 springboot_network 网桥网络springboot_network:

2、构建镜像

docker build -t fanhe_docker:1.6

3、运行容器

  • 进行语法检查
docker-compose config -q
  • 运行容器
docker-compose up -d
  • 关停容器
docker-compose stop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/456956.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【iOS ARKit】人形遮挡

人形遮挡简介 在 AR系统中,计算机通过对设备摄像头采集的图像进行视觉处理和组织,建立起实景空间,然后将生成的虚拟对象依据几何一致性原理嵌入到实景空间中,形成虚实融合的增强现实环境,再输出到显示系统中呈现给使用…

微信支付服务商,商户快速进件,减少工作量

大家好,我是小悟 服务商拓展特约商户,人工录入大量商户资料,耗时耗力。商户对标准费率不满意,无法说服商户先签约再帮其调整费率。 为了减少服务商工作量,服务商快速进件工具来了,分为移动端和管理端。用好…

Matplotlib热力图的创意绘制指南【第54篇—python:Matplotlib热力图】

文章目录 Matplotlib热力图的创意绘制指南1. 简介2. 基本热力图3. 自定义颜色映射4. 添加注释5. 不同形状的热力图6. 分块热力图7. 多子图热力图8. 3D热力图9. 高级颜色映射与颜色栏设置10. 热力图的动态展示11. 热力图的交互性12. 标准化数据范围13. 导出热力图 总结&#xff…

确定问卷调查样本量

目录 1. 问卷数据类型1.1 定性数据&定性分析1.2 定量数据&定量分析 2. 确定初始样本容量:2.1 公式:2.2 Z值2.3 p2.4 e2.5 举例 3.调整初始样本容量:3.1 公式:3.2 结论就是 小结: 1. 问卷数据类型…

收藏:相当大赞的来自 Agilean产品团队的2篇关于重塑敏捷组织的绩效管理的文章

Agilean产品团队,是吴穹博士领导下最近在国内敏捷界很厉害的产品,今天看到两篇相当不错的说敏捷组织的上下篇文章,分享下,地址是:6个原则15项举措,重塑敏捷组织的绩效管理(上) 6个原…

【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的高可靠消息服务设计实现

盘点本年度探索对外服务的百万请求量的高可靠消息服务设计实现 前提回顾消息服务逻辑架构运作流程消息路由系统数据存储系统BitCask结构异地存储容灾 推送系统数据消费模式推、拉模式的切换 实现低延时推送快速确认消息三层存储结构HeapMemoryDirectMemory 总结和展望 前提回顾…

常用加密算法

取盐校验 (不可逆) md5 md2 md4 带密码的md5(hmac) sha1 sha256 sha512 对称加密(可还原) AES DES 3DES 非对称加密(可还原) RSA(私钥 公钥) 同一个明文可…

生成树技术华为ICT网络赛道

9.生成树 目录 9.生成树 9.1.生成树技术概述 9.2.STP的基本概念及工作原理 9.3.STP的基础配置 9.4.RSTP对STP的改进 9.5.生成树技术进阶 9.1.生成树技术概述 技术背景:二层交换机网络的冗余性与环路 典型问题1:广播风暴 典型问题2:MA…

第8节、双电机多段直线运动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】,查看本系列全部文章 摘要:前面章节主要介绍了bresenham直线插值运动,本节内容介绍让两个电机完成连续的直线运动,目标是画一个正五角星 一、五角星图介绍 五角星总共10条直线,10个顶点。设定左下角为原点…

【力扣】两数相加,模拟+递归

两数相加原题地址 方法一:模拟 注意到链表的方向是从低位到高位,而做“竖式相加”也是低位到高位。 1 2 3 4 5 ----------- 1 6 8 所以可以用同样的方法来模拟。如果不考虑进位,只需要取出对应位的2个数相加,再尾插到新的…

微信小程序学习指南:从基础知识到代码展示

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Visual Studio 2010+C#实现信源和信息熵

1. 设计要求 以图形界面的方式设计一套程序,该程序可以实现以下功能: 从输入框输入单个或多个概率,然后使用者可以通过相关按钮的点击求解相应的对数,自信息以及信息熵程序要能够实现马尔可夫信源转移概率矩阵的输入并且可以计算…