当前位置: 首页 > news >正文

docker-compose 服务编排

docker-compose 服务编排

  • 概念
  • yaml
    • 内容
    • 内容解释
  • 常用命令
  • 服务编排的优点
  • 参考

概念

Docker Compose是一个命令行工具,用于定义和运行多容器Docker应用程序。它使用YAML文件来配置应用程序需要的所有服务,并使用一个命令来从YAML文件配置中创建并启动所有服务。Docker Compose是一种容器编排工具,可以简化部署多个容器的操作

yaml

内容

version: "3"services:microService:image: zyl_docker:1.0container_name: demo2ports:- "6001:6001"volumes:- /app/microService:/datanetworks: - zyl_networkdepends_on: - redis- mysqlredis:image: redis:7.0.9ports:- "6379:6379"volumes:- /app/redis/redis.conf:/etc/redis/redis.conf- /app/redis/data:/datanetworks: - zyl_networkcommand: redis-server /etc/redis/redis.confmysql:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: '123456'MYSQL_ALLOW_EMPTY_PASSWORD: 'no'MYSQL_DATABASE: 'demo1'MYSQL_USER: 'zyl'MYSQL_PASSWORD: '123456'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:- zyl_networkcommand: --default-authentication-plugin=mysql_native_password #解决外部无法访问networks: zyl_network: 

内容解释

这个配置文件。定义了三个服务:microService、redis和mysql,并在zyl_network网络上进行通信。

  1. microService服务使用自定义的zyl_docker:1.0镜像,容器名称为demo2,将主机的6001端口映射到容器的6001端口。将/app/demo2目录挂载到容器的/data目录。
  2. redis服务使用redis:7.0.9镜像,将主机的6379端口映射到容器的6379端口。 还将/app/redis/redis.conf挂载到容器的/etc/redis/redis.conf,并将/app/redis/data挂载到容器的/data目录。通过redis-server /etc/redis/redis.conf命令启动。
  3. mysql服务使用mysql:5.7镜像,并设置了一些环境变量来配置MySQL实例。 将主机的3306端口映射到容器的3306端口。 将/app/mysql/db挂载到容器的/var/lib/mysql,并将/app/mysql/conf/my.cnf挂载到容器的/etc/my.cnf。 还有/app/mysql/init目录挂载到容器的/docker-entrypoint-initdb.d目录,以便在初始化数据库时运行脚本。
  4. 使用–default-authentication-plugin=mysql_native_password命令解决外部无法访问的问题。
  5. 最后,该配置文件定义了一个名为zyl_network的网络,用于连接这三个服务。

常用命令

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/bashdocker-compose ps        # 展示当前docker-compose编排过的运行的所有容器docker-compose top        # 展示当前docker-compose编排过的容器进程docker-compose logs  yml里面的服务id     # 查看容器输出日志dokcer-compose config     # 检查配置dokcer-compose config -q  # 检查配置,有问题才有输出docker-compose restart   # 重启服务docker-compose start     # 启动服务docker-compose stop      # 停止服务

服务编排的优点

  • 简化部署:Docker Compose允许您使用简单的YAML文件定义应用程序的组成部分,并将它们统一地部署为容器。不再需要手动操作每个容器,大大简化了部署过程。

  • 管理复杂网络:微服务通常由多个容器组成,它们需要相互通信。Docker Compose可以自动创建和管理容器之间的网络,使得服务之间的通信变得更加便捷。

  • 扩展性:Docker Compose允许您根据需要轻松地扩展微服务。通过添加新的服务实例或增加容器数量,可以快速响应应用程序的需求变化。

  • 避免依赖冲突:不同的微服务可能依赖于不同版本的软件或库。Docker Compose可以确保每个服务都在自己的容器中运行,避免了依赖冲突的问题。

  • 简化本地开发环境:使用Docker Compose可以轻松创建本地开发环境,不再需要为每个服务手动安装和配置依赖项。

参考

  • Docker Compose(容器编排) 管理多容器应用—实战案例演示
  • docker Dockerfile java8构建微服镜像并运行
  • docker命令【史上最全】

相关文章:

  • 企业微信身份验证
  • 2023全球数字贸易创新大赛-人工智能元宇宙-11-12,数据二十条,数字产业化和产业数字化
  • 【bug】uniapp的image组件渲染gif图,只有第一次点击的时候有动效,需要每次点击都有gif效果,已解决
  • 【音视频-FFMPEG相关命令使用】
  • SELinux零知识学习二十五、SELinux策略语言之类型强制(10)
  • 微信小程序面试题【100道】
  • ORA-28003: password verification for the specified password failed,取消oracl密码复杂度
  • 【开源】基于JAVA的高校实验室管理系统
  • Web 自动化神器 TestCafe(三)—用例编写篇
  • 免费图书教材配套资料:Spark大数据技术与应用(第2版)
  • 基于opencv+ImageAI+tensorflow的智能动漫人物识别系统——深度学习算法应用(含python、JS、模型源码)+数据集(一)
  • 【ARM 嵌入式 编译 Makefile 系列 18 -- Makefile 中的 export 命令详细介绍】
  • C++学习之路(二)C++如何实现一个超简单的学生信息管理系统?C++示例和小项目实例
  • 4G5G智能执法记录仪在保险公司车辆保险远程定损中的应用
  • ubuntu22.04中ros2 安装rosbridge
  • leetcode386. Lexicographical Numbers
  • Mocha测试初探
  • Spring框架之我见(三)——IOC、AOP
  • SwizzleMethod 黑魔法
  • vue:响应原理
  • 后端_ThinkPHP5
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 微信支付JSAPI,实测!终极方案
  • 新手搭建网站的主要流程
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #NOIP 2014# day.2 T2 寻找道路
  • $.ajax中的eval及dataType
  • $NOIp2018$劝退记
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (离散数学)逻辑连接词
  • (十一)手动添加用户和文件的特殊权限
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (译)2019年前端性能优化清单 — 下篇
  • .libPaths()设置包加载目录
  • .net core 依赖注入的基本用发
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 读取 JSON格式的数据
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • @vue/cli 3.x+引入jQuery
  • [ 数据结构 - C++]红黑树RBTree
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]
  • [Excel VBA]单元格区域引用方式的小结
  • [E单调栈] lc2487. 从链表中移除节点(单调栈+递归+反转链表+多思路)
  • [hive] 窗口函数 ROW_NUMBER()