Docker系列compose ymal文件解析学习
目录
- docker-compose.yml 文件
- Dockerfile 文件解析
docker-compose.yml 文件
yml文件格式与json类似,采用缩进的形式来区别上下级关系,支持多种数据类型,字符,布尔,整数,日期,时间等,详细语法大家有兴趣的可以自己去查查看
上一回的docker-compose.yml 文件示例如下
# yaml 配置 version: '1.18' services: web: build: ./main.go ports: - "8080:8080"
默认为docker-compose.yml ,也可以使用.yaml扩展名格式也可
那么就逐行解释一下涉及到的命令
version 这个没什么好说的,代表的是镜像的版本,这个跟你基于的镜像版本一致
services 服务提供模块,也可以认为是容器实例,可包含多个子服务,可同时运行多个相同镜像的services
web 子服务名称,可自定义,
build 用于声明构建镜像的上下文路径,会扫描该路径下的Dockerfile文件并构建镜像
所有的服务都要通过build命令或者image命令去生成指定镜像
**ports 服务端口映射,可映射多个端口,等同于docker -p 命令 **
Dockerfile 文件解析
既然多次提到了Dockerfile这文件,那么我们也解析一下
示例如下
Dickerfile
# FROM 基于 golang:1.18-alpine FROM golang:1.18-alpine AS builder # ENV 设置环境变量 ENV GOPATH=/opt/repo ENV GO111MODULE=on ENV GOPROXY=https://goproxy.io,direct # RUN 设置 Asia/Beijing 时区 RUN apk --no-cache add tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Beijing /etc/localtime && \ echo "Asia/Beijing" > /etc/timezone # COPY 源路径 目标路径 从镜像中 COPY COPY --from=builder /opt /opt # EXPOSE 设置端口映射 EXPOSE 8080/tcp # WORKDIR 设置工作目录 WORKDIR /opt # CMD 设置启动命令 CMD ["./main.go", "run"]
其实我的注解写的已经很清晰了是吧
这里补充一下copy这里,这个copy的源路径不是宿主机的路径,而是镜像中的路径,目标路径是容器中路径
workdir 是设置的工作目录,但却不是在宿主机中,而是在镜像的每层都创建该工作目录
docker build时,每当执行run时就会创建新的镜像层,只有声明了workdir才能在创建新的镜像层的时候将该目录创建在每一层
以上就是Docker系列compose ymal文件解析学习的详细内容,更多关于Docker compose ymal文件解析的资料请关注我们其它相关文章!
相关推荐
-
Docker Compose 搭建简单的Python网络应用程序(步骤详解)
目录 前提条件 第1步:设置 第2步:创建一个Dockerfile 第3步:在Compose文件中定义服务 Web服务 Redis服务 第4步:用Compose构建和运行你的应用 第5步:编辑Compose文件以添加绑定挂载 第6步:用Compose重新构建并运行应用程序 第7步:更新应用程序 第8步:试验一些其他命令 在这个页面上,你可以建立一个简单的Python网络应用程序,运行在Docker Compose上.该应用使用Flask框架,并在Redis中维护一个点击计数器.虽然样本使用了Py
-
docker-compose安装RabbitMQ及插件操作步骤
目录 准备工作 docker-compose脚本 操作步骤 执行命令 进入容器内,启动我们刚刚添加的插件 查看插件是否有安装成功 优化搭建步骤 目的 思路 步骤 准备工作 RabbitMQ默认不带延迟队列插件,可以到官网去下载指定版本的插件,并手动安装到RabbitMQ环境中,在这里我使用的RabbitMQ版本是: rabbitmq:3.8-management 延迟队列插件版本是: rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez 以上版本
-
docker-compose常见的参数命令详解
目录 1. Docker Compose 产生背景 2. Docker Compose模板文件 1.environment 2.volumes 3.build 4.depends_on 5.env_file 6.networks 7.ports 8.expose 9.restart 3. docker-compose指令 1.up -d(后台启动) 2.down 3.exec 4.ps 5.top 6.logs -f(实时) 总结 1. Docker Compose 产生背景 Compose 项
-
Docker Compose搭建Wordpress服务实现详解
目录 前言 编写docker-compose.yaml 注意点 前言 最近在研究wordpress独立建站,在项目部署的时候也踩了一些坑,为了避免再次踩坑,特此通过此文章记录一下. 编写docker-compose.yaml 此次建站采用的是docker compose的方式来部署wordpress项目,我们可以进入DockerHub官网找到wordpress镜像: 根据官方文档提供的信息,最终我们可以编写出如下docker-compose.yaml: version: "3.1" s
-
详细讲解Docker-Compose部署Kafka KRaft集群环境
目录 概述 环境准备 Docker & Docker-Compose Linux服务器 步骤一:部署到开发环境上 docker-compose.yml文件编写 运行启动脚本 (拓展)容器可视化页面 (拓展)Kafka可视化页面 用脚本命令进行测试 整合Spring Boot应用 步骤二:部署到生产环境上 docker-compose.yml docker-compose配置文件变化部分以及说明 启动Nginx容器 最后一步:IP别名映射的重要性 extra_hosts配置 开发机修改hosts
-
Docker Compose+Nestjs构建Dapr Redis发布订阅分布式应用
目录 Dapr(分布式应用程序运行时)介绍 实战 Dapr 的 Redis 发布/订阅应用 1. 创建项目 2. 创建 Dapr Placement 服务 3. 创建 Redis Publish 服务 4. 创建 Dapr Pub-Sub 组件 5. 创建 Redis Dapr Sidecar 6. 创建 NestJS Server 7. 为 NestJS 订阅服务器创建 Dockerfile 8. 将 NestJS 订阅服务添加到 docker-compose 文件 9. 创建 Dapr 订阅
-
详解Docker之Compose服务编排
Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Compose是Fig的升级版,Fig已经不再维护.Compose向下兼容Fig,所有fig.yml只需要更名为docker-compose.yml即可被Compose使用. 服务编排工具使得Docker应用管理更为方便快捷. Compose网站:https://docs.docker.com/compos
-
Android平台基于Pull方式对XML文件解析与写入方法详解
本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地
-
Docker 中的容器完全解析
Docker 中的容器完全解析 Docker中的容器可以看成是镜像的一个运行环境,它带有额外的可写文件层. 一.创建容器: 1.新建容器: docker create -it --name [CONTAINERNAME] [NAME]:[TAG] 比如: docker create -it --name container ubuntu:add /bin/bash 此为根据镜像的名称创建容器,容器的名称为container 2.查看容器详情列表: docker ps -a 可以查看到容器的ID,
-
Android开发之XML文件解析的使用
前言 本文主要介绍在Android中怎样来解析XML文件.主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包.作为接口,SAX是事件驱动型XML解析的一个标准接口.XML文件解析一般有2种方法,DOM和SAX.其中DOM需要先将xml文档全部读入到电脑内存中,当文档内容太大时,该方法并不适用.SAX就比较好的解决了该问题,它是逐行解析的,可以随时中断.但是SAX的操作比较复杂.因此,这2种方法各有优缺点,看具体应用情况.在前面的文章Qt学习
-
Android中对xml文件解析的3种方式总结
前言 xml 是数据传输的一种格式,Android 中的布局文件.设置文件等都采用它来表示.Android 中对 xml 文件的解析也有多种方式,下面介绍常用的 3 种方式: Dom . SAX 和 dom4j.下面话不多说了,来一起看看详细的介绍吧. 先看一个简单的 xml 文件: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <书 出版社="骏马&qu
-
Python实现XML文件解析的示例代码
1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性. test.XML文件 <?xml version="1.0" encoding="utf-8"?> <catalog> <m
-
浅谈vue中.vue文件解析流程
我们平时写的 .vue 文件称为 SFC(Single File Components),本文介绍将 SFC 解析为 descriptor 这一过程在 vue 中是如何执行的. vue 提供了一个 compiler.parseComponent(file, [options]) 方法,来将 .vue 文件解析成一个 descriptor: // an object format describing a single-file component. declare type SFCDescrip
-
如何清理docker产生的垃圾文件
无意中感觉磁盘空间不够用,于是使用df -a命令查看,结果令人大吃一惊,全是docker干的好事,在/var/lib/docker/aufs里生成了一堆垃圾: davidhopper@davidhopper-ThinkPad-P50s:~$ df -a 文件系统 1K-块 已用 可用 已用% 挂载点 sysfs 0 0 0 - /sys proc 0 0 0 - /proc udev 8112832 0 8112832 0% /dev devpts 0 0 0 - /dev/pts tmpfs
-
Node.js 网络框架koa compose中间件使用解析
目录 前言 koa-compose 洋葱模型 源码解析 总结 前言 学习目标: koa-compose 洋葱模型 源码地址:koajs/compose koa-compose Koa-compose 是一个 Koa 中间件工具,Koa 是一个流行的 Node.js 网络框架.Koa-compose 允许你将多个中间件函数组合成一个单独的函数,这样可以更容易地管理和重用中间件. 在 Koa 中,中间件函数是按照特定顺序调用的函数,用于处理传入的 HTTP 请求并生成响应.中间件函数可以执行各种任务
-
IOS 简单的本地json格式文件解析的实例详解
IOS 简单的本地json格式文件解析的实例详解 ljweibo.json文件 { "data":[{ "name" : "孙悟空", "content" : "7月12日的国务院常务会议上,李克强明确要求,要将已审议的<快递条例(草案)>向社会公开征求意见.在会上,总理说了这么一段话:"几年前,快递业刚刚开始发展的时候,有些城市不允许快递存在,理由是影响市容整洁,快递员骑的摩的也不允许停放.但
随机推荐
- Swift网络请求库Alamofire使用详解
- 基于jquery animate操作css样式属性小结
- PHP连接SQLServer2005方法及代码
- Freemarker如何生成树形导航菜单(递归)
- IOS 中NSUserDefaults读取和写入自定义对象的实现方法
- 详解参数传递四种形式
- PHP实现的统计数据功能详解
- php创建多级目录的方法
- php中看实例学正则表达式
- JS延时提示框实现方法详解
- Python的re模块正则表达式操作
- Python爬取Coursera课程资源的详细过程
- jQuery实现图片上传和裁剪插件Croppie
- Android实现TCP断点上传 后台C#服务接收
- js判断手机和pc端选择不同执行事件的方法
- IIS6 和Tomcat5 的整合
- PHP 序列化和反序列化函数实例详解
- 基于jquery点击自以外任意处,关闭自身的代码
- MyBatis简介与配置MyBatis+Spring+MySql的方法
- Android 文件数据存储实例详解