Docker-compose容器群集编排管理工具

目录

Docker-compose

1、Docker-compose 的三大概念

2、YAML文件格式及编写注意事项

1)使用 YAML 时需要注意下面事项

2)ymal文件格式

3)json格式

3、Docker Compose配置常用字段

4、Docker-compose的四种重启策略

5、Docker Compose 常用命令

6、Docker-compose配置文件的编写


Docker-compose

docker-compose 实现在单机上对容器集群编排管理的工具。使用python开发的,能运行docker的平台也都能用docker-compose编排管理容器。

本质就是在yaml格式的docker-compose配置模板文件里定义多个容器的启动参数和依赖关系,并使用docker-compose根据这个模板文件的配置来启动和管理容器集群

1、Docker-compose 的三大概念

项目project -> 包含一个或多个服务service -> 包含一个或多个容器的镜像、映射端口、环境变量等启动参数

默认使用项目的目录名做project项目名,支持使用 -p 或 --project-name 来指定项目名
在项目目录里要包含一个 docker-compose 配置模板文件,默认为 docker-compose.yml,支持使用 -f 或 --file 来指定项目的配置模板文件
在配置模板文件里要包含一个或者多个服务,每个服务包含启动容器的名称、镜像、映射端口、环境变量、挂载点、网络模式、依赖关系等容器启动的配置参数

2、YAML文件格式及编写注意事项

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

1)使用 YAML 时需要注意下面事项

  • 大小写敏感
  • 通过缩进表示层级关系
  • 不支持制表符 tab 键缩进,只能使用空格缩进
  • 缩进的空格数目不重要,只要相同层级左对齐,通常开头缩进2个空格
  • 用 # 号注释
  • 符号字符后缩进1个空格,如冒号 :  、逗号 ,  、横杠 - 
  • 如果包含特殊字符用单引号('')引起来会作为普通字符串处理,双引号(""): 特殊字符作为本身想表示的意思

2)ymal文件格式

文件名格式以 .yml 或者.yaml 为后缀,用 空格缩进表示字段的层级关系,可读性高,易于人类管理。

#一个字段key有多个值的表达式
横向写法:
test: ["test1", "test2", "test3"]纵向写法:
ntest:
- "test1"
- "test2"
- "test3"#多级字段的格式
顶级/一级字段:二级字段1: ["值1", "值2"]二级字段2: 三级字段: 值     对象object类型value:            value: 相当于echo helloworld!helloworld!value: |          value: 相当于echo -e "hello\nworld!"helloworld!value: |-         value: 相当于echo -n helloworld!helloworld!value: |+         value: 相当于echo -e "hello\nworld!\n"helloworld!value: >          value: 相当于echo "hello world!"helloworld!name: &a zhangsan     相当于 a=yaml
book: *a              相当于 echo $a , book: zhangsan

3)json格式

文件名格式以 .json 为后缀,用 {} 表示字段的层级关系,程序接口解析效率高

{ "字段": "值"}
{ "debug": true }          布尔值类型
{ "ht": "dashuaige" }     字符串类型{"heitui01": ["ht", "shellking", "paidaxing"],"heitui02": ["zhangsan", "lisi", "wangwu"]
}{"websites": {                      一级字段"memory": "512M",                二级字段"disk": "100G","cpu": {                         三级字段"name": ["inter", "amd"]}}
}

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,no-failure,unless-stopped
depends_on定义服务之间依赖关系

4、Docker-compose的四种重启策略

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

2)always:在容器退出时总是重启容器。

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

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

5、Docker Compose 常用命令

字段描述
build重新构建服务
ps列出容器
up创建和启动容器
exec在容器里面执行命令
scale指定一个服务容器启动数量
top显示容器进程
logs查看容器输出
down删除容器、网络、数据卷和镜像
stop/start/restart停止/启动/重启容器

6、Docker-compose配置文件的编写

docker-compose配置文件采用yaml文件格式编写,所以前面有介绍yaml文件格式

下载安装Docker compose

Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose

#下载

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

#查看版本

docker-compose --version

准备依赖文件

mkdir -p /data/compose_nginx/nginx /opt/compose_nginx/wwwroot
cd /data/compose_nginx/nginx
cp nginx-1.12.0.tar.gz ./
 
vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx
 
vim Dockerfile
#基于基础镜像
FROM centos:7
#用户信息
MAINTAINER this is nginx image <dhj>
#添加环境包
RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
#上传nginx软件压缩包,并解压
ADD nginx-1.12.0.tar.gz /usr/local/src/
#指定工作目录
WORKDIR /usr/local/src/nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
#指定http和https端口
EXPOSE 80
EXPOSE 443
//方法一:
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf            #关闭 nginx 在后台运行
#添加宿主机中run.sh到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
//方法二:
ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]
 
 
echo "<h1>this is test web</h1>" > /opt/compose_nginx/wwwroot/index.html

编写配置文件docker-compose.yml

vim /data/compose_nginx/docker-compose.yml
version: '3'
services:
  nginx:
    container_name: web1
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1216:80
      - 1217:443
    networks:
      lnmp:
        ipv4_address: 172.18.0.10
    volumes:
      - ./wwwroot:/usr/local/nginx/html
networks:
  lnmp:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/16

启动docker-compose

  1. cd /data/compose_nginx/

  2. docker-compose -f docker-compose.yml up -d #启动docker-compose

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

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

相关文章

BetterDisplay Pro v1.4.15(显示器管理管理软件)

BetterDisplay Pro是一款屏幕显示优化工具&#xff0c;可用于Windows和Mac操作系统。它可以帮助用户调整屏幕的亮度、对比度、色彩等参数&#xff0c;以获得更好的视觉体验。此外&#xff0c;BetterDisplay Pro还提供了一些额外的功能&#xff0c;如屏幕分割、窗口管理、快捷键…

基于单片机的车载太阳能板自动跟踪系统研究

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、总体设计开发流程二、机械结构设计与研究3.1 机械系统总体设计3.1.1 太阳能板折叠传动 三、太阳能自动跟踪系统硬…

卡尔曼家族从零解剖-(04)贝叶斯滤波→细节讨论,逻辑梳理,批量优化

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…

内存取证 worldskills3.vmem与gs02.jpg题目WP

worldskills3.vmem 题目信息 获取admin用户密码是多少&#xff1f; 获取ip和主机名是什么&#xff1f; 获取桌面上的flag.txt文件的内容是什么&#xff1f; 服务器存在一个挖矿病毒&#xff0c;矿池地址是&#xff1f; 恶意代码在系统中注册了服务&#xff0c;服务名是什么&a…

windows 11渗透测试工具箱

系统简介 本环境旨在提供一个开箱即用的windows渗透测试环境&#xff1b;建议运行环境&#xff1a;【vmware&#xff1a;17.0 】 /【运行内存&#xff1a;8G】 /【固态硬盘&#xff1a;100G】 Windows11 Penetration Suite Toolkit v2.2 (WSL) 【推荐】 下载链接&#xff1a;h…

K8S知识点(四)

&#xff08;1&#xff09;环境搭建-集群安装 查看所需镜像 定义下载镜像 循环下载镜像&#xff1a; 下载完成之后&#xff1a;查看一下镜像&#xff0c;名字也已经改成了k8s的名字 集群初始化只在master节点上运行&#xff0c; 出现sucessfully表示成功&#xff0c;提示要运…

Kafka(二)消息系统设计

文章目录 前言整体设计时序图时序图解释 最后 前言 当多个系统之间通过Kafka来解耦时&#xff0c;在系统设计初期&#xff0c;基本的要求都是相似的&#xff0c;只不过是消费消息时的业务逻辑可能不同。 本文以业务系统和邮件系统解耦作为示例。业务系统需要发送邮件时&#…

Cubase 13 官宣升级,用户界面重新设计,音乐创作“更自然、更直观、更方便”,全面支持 MIDI 2.0

Cubase 13简介 Steinberg发布Cubase 13升级&#xff0c;带有显著的重新设计了用户界面&#xff0c;还有众多新功能和提升作曲、制作、混音和给你创意的工作流。 获取地址 Steinberg Cubase Pro 13 功能新特性 随时随地的混音&#xff1a; MixConsole重新设计了更简洁的界面…

R语言爬虫代码模版:技术原理与实践应用

目录 一、爬虫技术原理 二、R语言爬虫代码模板 三、实践应用与拓展 四、注意事项 总结 随着互联网的发展&#xff0c;网络爬虫已经成为获取网络数据的重要手段。R语言作为一门强大的数据分析工具&#xff0c;结合爬虫技术&#xff0c;可以让我们轻松地获取并分析网络数据。…

【Mac开发环境搭建】JDK安装、多JDK安装与切换

文章目录 JDK下载与安装下载安装 配置环境变量安装多个JDK共存 JDK下载与安装 下载 Oracle官网提供了非常多个版本的JDK供下载&#xff0c;可以点击如下链接重定向到JDK下载页面 ORACLE官网JDK下载 安装 下面的官方文档可以点开收藏到浏览器的收藏夹&#xff0c;这样后续在开…

Ps:PSDT 模板文件

自 Photoshop CC 2015.5 版以后&#xff0c;Ps 中新增了一种文件格式&#xff1a;.PSDT。 说明&#xff1a; PSD、PDD、PSDT 都是 Ps 的专用文件格式&#xff0c;需要继续在 Ps 中进行编辑的文件可存为此类格式。 PSD Photoshop document Photoshop 默认文档格式&#xff0c;支…

华纳云:centos系统中怎么查看cpu信息?

在CentOS系统中&#xff0c;我们可以使用一些命令来查看CPU的详细信息。下面介绍几个常用的命令&#xff1a; 1. lscpu lscpu命令可以显示CPU的架构、型号、核心数、线程数、频率等信息。 # lscpu 执行以上命令后&#xff0c;会输出类似以下内容&#xff1a; 2. cat /proc/…