首页 > 其他分享 >Docker-Compose单机容器集群编排工具

Docker-Compose单机容器集群编排工具

时间:2024-08-06 20:54:44浏览次数:15  
标签:容器 Compose 单机 文件 Docker docker 模板

目录

容器编排管理与传统的容器管理的区别

什么Docker-Compose?

Docker-Compose的简介

Docker-Compose的作用

Docker-compose的三大概念

什么YAML文件?

YAML文件介绍

使用YAML时的注意事项

YAML文件的基本数据结构

Docker-Compose配置常用字段

Docker-Compose常用命令


我们知道使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,Docker Compose。

容器编排管理与传统的容器管理的区别

传统的容器管理

  1. Dockerfile文件
  2. 手动执行 docker build 一个个镜像的构建
  3. 手动执行 docker run 一个个容器的创建和启动

容器编排管理

  1. Dockerfile文件
  2. 在docker-compose.yml配置模板文件里定义容器启动参数和依赖关系
  3. 执行docker-compose命令指定配置模板文件,根据模板文件的配置一键完成所有镜像的构建和容器的创建启动

什么Docker-Compose?

Docker-Compose的简介

  • 一个可以实现在单机上对容器集群编排管理的工具。
  • 使用python开发的,能运行docker的平台也都能用docker-compose编排管理容器。
  • 就是在yaml格式的docker-compose配置模板文件里定义一个或多个服务及其容器的启动参数和依赖关系,并使用docker-compose命令根据配置模板文件中的参数来启动和管理容器。

Docker-Compose的作用

  • 一个Dockerfile模板文件可以定义一个单独的应用容器
  • Docker Compose作为Docker官方产品可以服务编排定义多个容器

Docker-compose的三大概念

项目project

  • 包含一个或多个服务service
  • 默认使用项目的目录名作为project的项目名,也支持使用 -p 或 --project-name 选项指定项目名称
  • 项目目录里要包含一个docker-compose配置模板文件,默认为docker-compose.yml,也支持使用 -f 或 --file 选项指定项目的配置模板文件

服务service

  • 包含容器container的镜像、端口映射、数据卷、环境变量、依赖关系等启动参数
  • 在配置模板文件里要包含一个或多个服务及其容器的配置,每个服务要包含容器的名称、镜像、映射端口、数据卷、网络模式、依赖关系等容器的启动参数。

容器container

  • 在配置模板文件里要包含一个或多个服务及其容器的配置,每个服务要包含容器的名称、镜像、映射端口、数据卷、网络模式、依赖关系等容器的启动参数。

什么YAML文件?

YAML文件介绍

  • YAML 是一种标记语言,它可以很直观的展示数据序列化格式,可读性高。
  • 类似于 json 数据描述语言,语法比 json 简单的很多。YAML 数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号 [ ] 括起来, hash 用花括号 { } 括起来。

使用YAML时的注意事项

  • 大小写敏感
  • 通过缩进表示层级关系
  • 只能使用空格缩进不能使用tab键
  • 可以使用井号键进行注释
  • 符号字符都有一个空格 如test:
  • 单引号起来的字符,会被当作普通字符串处理。"#&" 双引号里面如果是特殊字符,就表示本意
  • '$' 表示普通字符串
  • "$" 表示就是$

YAML文件的基本数据结构

yaml格式文件

  • 文件名以 .yaml .yml 为后缀,用 空格缩进 表示字段的层级关系

特点

  • 可读性高,易于管理
#一级字段
key1: value1              #一个key只有一个值,值的类型为 纯量
key2: 
- value1                        #一个key有多个值的纵向格式,值的类型为 列表
- value2
key3: ["value1", "value2"]      #一个key有多个值的横向格式,值的类型为 数组
key4:
  #二级字段
  subkey1: value1               #用 空格缩进 表示字段的层级关系,同一层字段要靠左对齐
  subkey2:value2
  subkey3:                      #key的值也是键值对,值的类型为 对象
    #三级字段
    sskey1: value1
	sskey2: value2

json格式文件

  • 文件名以 .json 为后缀,用 大括号{} 表示字段的层级关系,每层字段除了最后一个
  • 字段都要用逗号 , 结尾

特点

  • 易于编程语言的api接口解析
#一级字段
{
   "key1": ["value1"],
   "key2": ["value2", "value3"],
   "key3": {
      #二级字段
      "subkey1": ["value1"],
      "subkey2": ["value2"],
      "subkey3": {
         #三级字段
         "sskey1": ["value1"],
         "sskey2": ["value2"]
      }
   }
}
 
 
key1:           值相当于echo "helloworld"
  hello
  world
  
key2: |         值相当于echo -e "hello\nworld"      #key: |  表示保留文本块中的换行符
  hello
  world
  
key3: |-        值相当于echo -e "hello\nworld\c"
  hello
  world
  
key4: |+        值相当于echo -e "hello\nworld\n"
  hello
  world
  
key5: > hello       值相当于echo  "hello world"    #> 会将文本块中的回车替换为空格
  world
  
key1: &a value1      #定义数据锚点,即定义复制的数据,相当于 a="value1"
key2: *a             #引用锚点数据,值相当于为 echo $a ,  key2: "value1"

Docker-Compose配置常用字段

 字段 描述
image使用本地镜像或从仓库拉取镜像创建容器
build使用dockerfile现场构建镜像创建容器
context指定dockerfile文件所在的目录路径
dockerfile指定dockerfile文件名
command设置容器的启动命令,会覆盖镜像中的CMD指令
container_name设置容器名   --name
environment设置环境变量  -e  -env
networks设置容器使用的自定义网络和IP  --ip
network_mode设置容器的网络模式  --network
ports设置容器端口映射  -p
volumes 设置数据卷挂载   -v
volumes_from设置数据卷容器挂载,版本3不支持  --volumes-from
hostname设置容器主机名   -h  --hostname
sysctls设置容器的内核参数  --sysctl
links设置容器互联   --link
privileged设置容器拥有root权限  --privileged
restart设置容器重启策略   --restart
depends_on设置容器的依赖关系

Docker-Compose常用命令

docker-compose [-f docker-compose.yml] up -d               根据模板文件创建并后台启动所有容器
                                       down                根据模板文件删除所有容器
									   ps                  根据模板文件查看所有容器状态
									   start|stop|restart  根据模板文件启动|停止|重启所有容器

标签:容器,Compose,单机,文件,Docker,docker,模板
From: https://blog.csdn.net/2401_83784772/article/details/140927086

相关文章

  • 传奇单机版:复古三职业+无需虚拟机一键安装
    今天给大家带来一款单机游戏的架设:传奇单机版。沉默版本三职业数值不变态,没有花里胡哨的东西(比如切割,生肖,时装等功能),客户端为16周年客户端。另外:本人承接各种游戏架设(单机+联网)本人为了学习和研究软件内含的设计思想和原理,带了单机架设教程,不适用于联网,仅供娱乐。教程是本人......
  • Docker使用问题
    坑点一:一、问题背景dockerpullcentos不指定tag,拉取的latest为centos8。yum下载的时候报错错误代码关键信息:Cannotdownloadrepodata/repomd.xml:Allmirrorsweretried二、解决方案这里其实给大家一个建议,也算是自己的一个心得吧:很多时候我们看到报错,都会习......
  • docker 容器,将网络更改为默认bridge网络
    在大型政体内部局域网,项目上线后发现部分网段无法访问,仔细排查是局域网网段与docker内网网段重叠,导致应用无法访问。一般每个单位都会预留docker使用的内部网络地址,可能不尽相同,假设为10.255.0.0/16如果是项目较小,也没有docker内部网络隔离的需求,直接这么干:1、配置bip,配置成10......
  • docker安装和使用 -- px4-dev-nuttx-focal为例
    安装dockersudoapt-getupdatesudoaptinstalldocker.io镜像源设置1.可scienceInternet开启代理后,还需要设置docker的服务器,参考教程sudomkdir-p/etc/systemd/system/docker.service.dsudovi/etc/systemd/system/docker.service.d/proxy.conf在新建的proxy.co......
  • Docker镜像与容器的导入导出
    1.镜像导出导入save+load1.1镜像导出示例dockersave-onginx.tarnginx:latest或dockersave>nginx.tarnginx:latest*-o和>表示输出到文件*nginx.tar为目标文件*nginx:latest是源镜像名(name:tag)1.2镜像导入示例dockerload-inginx.tar......
  • Linux Docker使用代理
    面对dockerpull下载速度过慢,甚至根本无法正常下载的问题,下面介绍三种方法解决Docker联网的问题。内容转载自:https://note.qidong.name/2020/05/docker-proxy/有所修改通常的在终端中设置http_proxy的环境变量不能代理dockerpull的流量,原因在于docker的流量是systemd管理的,......
  • Docker
    文章目录1Docker简介2核心概念3安装3.1准备工作3.2安装docker3.3Docker配置3.3.1权限配置3.3.2镜像仓库加速4使用4.1Docker命令总结4.2镜像相关的命令4.3容器相关的命令4.3.1创建并启动容器4.3.2查看容器4.3.3进入运行中的容器4.3.4查看容器日志4.3.5......
  • 01-初识Docker
    1.常规应用部署面临的问题部署流程复杂环境不一致资源隔离问题交付流程复杂1)JavaWEB架构:代码打包——>上传镜像仓库——>镜像下载至服务器——>服务器运行镜像2)JavaSpingboot一体式架构:代码打包——>上传镜像仓库——>镜像下载至服务器——>服务器运行镜像3)JavaCl......
  • docker容器技术
    认识docker一、为什么学习docker使用背景 某公司的产品运行在内部的虚拟化平台中,如openstack,也就是我们所学的KVM虚拟化,创建虚拟机。但是不断增加的云端应用,增加了对硬件资源的消耗,不断的创建虚拟机,给公司带来了难题,公司已经在云平台上运行了多台云主机,消耗了大量的硬件资......
  • Docker快速入门
    DockerDocker:快速构建、运行、管理应用的工具安装docker需要安装Linux虚拟机教程:‍⁠‬‍‍‍‍‌⁠‍‬‌‬‍‬‍‬‍‬Linux环境搭建-飞书云文档(feishu.cn)Linux虚拟机操作过于繁琐安装MobaXterm来解决这个问题在虚拟机中安装docker后进行以下操作CentOS7配置......