ToB企服应用市场:ToB评测及商务社交产业平台

标题: 微服务实战系列之玩转Docker(八) [打印本页]

作者: 伤心客    时间: 2024-8-2 06:42
标题: 微服务实战系列之玩转Docker(八)
前言

“Compose”一词的原意是创作、组成、构成(一个整体),那么“Docker Compose”一词可以理解为一组docker。今天博主偏重先容一下这个“容器导演” —— 一个docker自带的容器管理工具。

Docker Compose入门

1. 定义

   Docker Compose is a tool for running multi-container applications on Docker defined using the Compose file format. A Compose file is used to define how one or more containers that make up your application are configured. Once you have a Compose file, you can create and start your application with a single command: docker compose up.
  博主尝试翻译一下:
   Docker Compose是一个使用规范的Compose file(即YML)文件运行多容器应用的工具。而这个YML文件被用于“组织”你的应用中的一个或多个容器,一旦你有了该文件,你可以或许通过一个命令:docker compose up,完成应用的启停。
  

2. 开始必备

2.1 dockerfile

dockerfile是构建镜像的必备文件,也是镜像的根本。关于它的具体内容可以回顾博主的相关博文,这里不再重点先容。
2.2 compose.yml

compose文件是compose运转的必备文件,也是构建“一组”容器的依靠关系,有序且正确的运行一个完整应用的基础。
有些盆友可能好奇了,这是个什么文件?博主举个栗子(来自github):
  1. services:
  2.   web:
  3.     build: .
  4.     ports:
  5.       - "5000:5000"
  6.     volumes:
  7.       - .:/code
  8.   redis:
  9.     image: redis
复制代码
简单讲就是一个YAML文件。YAML是一个类似 XML、JSON 的标记性语言,便于阅读、易于理解,已普遍用于各种开发语言中。compose基于YML完成服务的定义与编排。
2.3 run application

启动应用时,我们使用如下命令,可一键完成多容器的启动:
  1. docker compose up --build
复制代码
3. 核心知识

3.1 基本概念

通过“开始必备”一节,我们知道,如纯熟使用compose,需重点掌握compose.yml。该文件决定了一个service“需要哪些docker镜像以及每个镜像间的依靠关系”,而浩繁的service构成了一个application,或者是一个project。
从博主的形貌来看,这里有2个紧张的概念:project和service。
术语解释service一个服务单元,在compose中可视为一个镜像的实例。project一个完整的项目或者应用,在compose中可视由多个镜像实例组合而成的应用。 3.2 选项与指令集

这是一个compose的命令:
  1. docker compose [-f <arg>...] [options] [COMMAND] [ARGS...]
复制代码
其中紧张的Option(选项)如下:
选项用途–ansi控制何时打印 ANSI 控制字符。可选项有:“never”,“always”,“auto”–compatibility向后兼容运行–env-file指定环境文件。比如一些环境变量的配置文件-f,–file指定 Compose 配置文件(最紧张)–parallel控制最大并行性,-1 为无限制 (默认 -1)–profile指定要启动的服务–project-directory指定一个替代的工作目录(默认: Compose 文件的路径)-p,–project指定一个项目名称 紧张的Command(命令)如下:
命令用途config验证compose.yml的格式是否精确up创建并启动所有服务(即容器组),如背景启动加-qpull拉取服务依靠的镜像logs检察服务容器的输出日志,如跟踪日志加-fps检察工程中的所有服务(即容器组),如检察具体的服务,需指定名称run在指定服务(容器)上执行一个命令exec进入指定的服务(容器),如服务包含多个容器加--index,指定序号pause、unpause暂停、规复服务(容器)start、stop、restart启动、制止、重启服务(容器),如操作具体的服务,需指定名称rm删除已制止运行的服务(容器),如同步删除挂载的卷加-vport输出指定服务(容器)的端口所映射的主机端口images输出指定服务(容器)对应的镜像 4. 举个例子

  1. # 定义compose版本号
  2. version : '3.8'
  3. # 定义服务集
  4. services:
  5.   test-nacos: #service名称
  6.     container_name: test-nacos # 容器名称
  7.     build:
  8.       context: ./nacos # 指定构建镜像上下文路径
  9.       dockerfile: Dockerfile #指定nacos dockerfile文件名
  10.       environment: # 环境变量
  11.       - MODE=standalone
  12.     depends_on: # 依赖的service
  13.       - test-mysql
  14.    
  15.   test-mysql:
  16.     container_name: test-mysql
  17.     build:
  18.       context: ./mysql
  19.       dockerfile: Dockerfile #指定mysql dockerfile文件名
  20.     environment:
  21.       MYSQL_DATABASE: dbname
  22.       MYSQL_ROOT_PASSWORD: password
复制代码
定义完成YML文件,如无误,你就可以根据命令执行启动了。
结语

通过玩转docker系列文章,我想可以或许让各位盆友对docker产生基本的认识,进而通过不停的尝试与实践,加深这种认识。我们面临新技术、新工具时,通常需要勤思索、勤动手、勤总结。在IT领域,没有什么比行动更紧张。
文章再长,终有一尾;
知识再多,一篇难尽!
玩转docker,不一样的精彩,欢迎各位大佬辅导与关注,博主在这里不甚感激!

系列回顾


微服务实战系列之玩转Docker(七)
微服务实战系列之玩转Docker(六)
微服务实战系列之玩转Docker(五)
微服务实战系列之玩转Docker(四)
微服务实战系列之玩转Docker(三)
微服务实战系列之玩转Docker(二)
微服务实战系列之玩转Docker(一)
微服务实战系列之云原生


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4