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

docker-compose单机容器集群编排

docker-compose

dockerfile模板文件可以定义一个独立的应用容器,如果需要多个容器就需要服务编排。服务编排有很多技术方案

 docker-compose开源的项目实现对容器集群的快速编排

docker-compose将所管理的容器分为三层,分别为工程,服务,以及容器。docker-compose运行目录下的所有文件(docker-pompos.yum,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为每个当前目录名。一个共工程当中包含多个服务,每个服务中定义了容器的运行的镜像,参数,依赖、当一个服务中包括多个容器实例,docker-compose的工程默认配置文件默认为docker-compose.yml ,可以通过环境变量compose_file或-f自定义配置文件其定义了多个服务和容器

yaml文件格式及编写注意事项 

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

使用yaml时需要注意

大小写敏感

通过缩进表示层级关系

不支持tab键缩进,只能使用空格缩进

缩进的空格数目不重要,但是相同层级左对齐

#注释

符号字符后缩进1个空格如冒号:逗号, 横杠- 

如果包含特殊字符用(' ')引起来会作为普通字符串处理,双引号(“ ”);特殊字符做为本身想表示的意思name: "Hi,\nTom"

数据结构

对象映射:键值对的字典

animal:pets

序列数组:一组按次序排列的列表

pets:

- Cat

- Dog

- Goldfish

pets: ["Cat","Dog","Goldfish"]

布尔值

debug:true

debug:false

示例

# yaml 格式

true和false系统默认是布尔型

json格式及docker生产经验

| 保留文本中的换行

3。 Docker Compose配置常用字段字段

字段- - -描述

build   指定Dockerfile 文件名,要指定Dockerfile文件需要在build标签的子级标签中使用dockerfile标签指定

dockerfile  构建镜像上下文路径

context  可以是 dockerfile 的路径,或者是指向 git 仓库的 url 地址

image  指定镜像

command 执行命令,覆盖容器启动后默认执行的命令

container_name  指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale指定容器数量

deploy  指定部署和运行服务相关配置,只能在 Swarm 模式使用

environment  添加环境变量

networks  加入网终,引用顶级networks下条目

network_mode  设置容器的网络模式,如 host,bridge,..

ports  暴露容器端口,与 -p 相同,但端口不能低于 60

volumes  挂载一个宿主机目录或命令卷到容器,命名卷要在顶级 volumes 定义卷名称

volumes_from  从另一个服务或容器挂载卷,可选参数 :ro 和 :rw,仅版本‘2’ 支持

hostname  容器主机名

sysctls  在容器内设置内核参数

links  连接到另外一个容器,- 服务名称[:服务别名]

privileged  用来给容器root权限,注意是不安全的,true | false

restart  设置重启策略,no,always, on-failure, unless-stopped

no,默认策略,在容器退出时不重启突器。

always,在容器退出时总是重启究器。

on-failure,在容器非正常退出时 (退出状态非0),才会重启容器

on-failure:3,在容器非正常退出时重启突器,

最多重启3次。

unless-stopped,在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器

 

 volumes_from  从另一个服务或容器挂载卷,可选参数 :ro 和 :rw,仅版本‘2’ 支持如果在版本3中也想实现从另一个服务或容器挂载卷可以

创建一个顶级的命名卷volumes:

db-data:

以命名卷为通道完成两个逻辑卷通信

networks:定义不同的网络域

不同网络域不能通信

 docker compose ps查看用户名 创建时不要docker-compose -f docker-compose.yml -p -d 无-p项目名做名字 -p指定否则查找docker compose ps查找时也要指定

docker logs nginx-compose查看

docker-compose

command:镜像后面的启动命令

两个容器互相从另一个服务挂载

或者直接挂载宿主机的 

http://www.lryc.cn/news/91826.html

相关文章:

  • CentOS7 安装Gitlab
  • Mysql InnoDB的Buffer Pool
  • SMTP简单邮件传输协议(C/C++ 发送电子邮件)
  • uploads靶场通关(1-11关)
  • 6.1黄金探底回升是否到顶,今日多空如何布局
  • 自定义ViewGroup实现流式布局
  • Git版本控制
  • 若依之权限处理
  • 华为OD机试真题 Java 实现【矩阵最大值】【2023 B卷 100分】,附详细解题思路
  • ModuleNotFoundError: No module named ‘transformers_modules.chatglm-6b_v1‘的解决方案
  • MMPretrain代码课
  • Selenium自动化程序被检测为爬虫,怎么屏蔽和绕过
  • Nvidia Jetson Orin:开发技巧
  • 为什么需要 git 和 相关的小知识
  • (详解)vue中实现主题切换的三种方式
  • 英国皇家植物园采用机器学习预测植物抗疟性,将准确率从 0.46 提升至 0.67
  • 基于Locust实现MQTT协议服务的压测脚本
  • AURIX TC3XX Cached PFLASH与Non-Cached PFLASH的区别
  • uniapp开发小程序-显示左滑删除效果
  • FPGA 的数字信号处理:Verilog 实现简单的 FIR 滤波器
  • 使用粒子群优化算法(PSO)辨识锂电池二阶RC模型参数(附MATLAB代码)
  • 如何利用地面控制点实现倾斜摄影三维模型数据的几何坐标变换和纠正?
  • 设计规则之里氏替换原则
  • 【叠高高】叠蛋糕游戏的微信小程序开发流程详解
  • 收集关键词的方法有哪些?(如何查找精准的行业流量关键词)
  • 【GreenDao】RxQuery查询并修改GreenDao数据库,完成后更新UI
  • Modifier ‘public‘ is redundant for interface methods错误
  • Redis缓存击穿及解决问题
  • 环境感知算法——2.CenterNet基于KITTI数据集训练
  • JUC 高并发编程基础篇