DevOps(10)

目录

56.Docker的架构?

57.Docker镜像相关操作有哪些?

58.Docker容器相关操作有哪些?

​编辑59.如何查看Docker容器的日志?

60.如何启动Docker容器?参数含义?

61.如何进入Docker后台模式?有什么区别?

62.什么是CI?

63.什么是CD?

64.什么是CI/CD管道?

65.如何理解DevOps?


56.Docker的架构?

Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。

Docker客户端(Client):Docker客户端通过命令行或者其他工具使用Docker  SDK(https://docs.docker.com/develop/sdk/)与Docker的守护进程通信。

Docker主机(Host):一个物理或者虚拟的机器用于执行Docker守护进程和容器。

Docker包括三个基本概念:

镜像(Image):Docker镜像(Image),就相当于一个root文件系统。比如官方镜像ubuntu:16.04就包括了完整的一套Ubuntu16.04最小系统的root文件系统。

容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是静态的定义,容器是镜像运行时的实体。容器可以被创建,启动,停止,删除,暂停等。

仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。

57.Docker镜像相关操作有哪些?

58.Docker容器相关操作有哪些?
59.如何查看Docker容器的日志?

60.如何启动Docker容器?参数含义?

-t:在新容器内指定一个伪终端或者终端。

-i:允许你对容器内的标准输入(STDIN)进行交互

-d:后台模式

61.如何进入Docker后台模式?有什么区别?

第一种:docker attach

第二种:docker exec

注意:

我特意在容器停止状态下执行了docker exec,是让你看到docker exec是在容器启动状态下用的,且注意下错误信息;

推荐大家使用docker exec命令,因此此退出容器终端,不会导致容器的停止。

62.什么是CI?

CI的英文名称是Continuous  Integration,中文翻译为:持续集成。

CI中,开发人员将会频繁地向主干提交代码,这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试进行验证。持续集成(CI)是在源代码变更后自动检测,拉取,构建和(大多数情况下)进行单元测试的过程。持续集成的目标是快速确保开发人员新提交的变更是好的,并且适合在代码库中进一步使用。CI的流程执行和理论实践让我么可以确定新代码和原有代码是否正确地集成在一起。

通俗点讲就是:通过持续集成,开发人员能够在任何时候多次向仓库提交作品,而不是独立的开发每个功能模块并在开发周期结束时一一提交。这里的一个重要思想就是让开发人员更快更频繁地做到这一线,从而降低集成的开销。实际情况中,开发人员在继承时经常会发现新代码和已有代码存在冲突。如果集成较早并更加频繁,那么冲突将更容易解决且执行成本更低。当然,这里也有一些权衡,这个流程不提供额外的质量保障。事实上,许多组织发现这样的集成方式开销更大,因为他们依赖人工确保新代码不会引起新的Bug或者破坏现有代码。为了减少集成期间的摩擦,持续集成依赖于测试套件和自动化测试。然而,要认识到自动化测试和持续测试是完全不同的这一点很重要。

CI的目标是将继承简化成一个简单,易于重复的日常开发任务,这样有助于降低总体的构建成本并在开发周期的早期发现缺陷。要想有效的使用CI必须转变开发团队的习惯,要鼓励频繁迭代构建,并且在发现bug的早期积极解决。

63.什么是CD?

这里的CD可对应多个英文名称,持续交付Continuous  Delivery和持续部署Continuous  Deployment。下面我们分别来看看上面是持续交付和持续部署。

持续交付

持续交付(CD)实际上是CI的扩展,其中软件交付流程进一步自动化,以便随时轻松地部署到生产环境中。成熟的持续交付方案也展示了一个始终可部署的代码库。使用CD后,软件发布将成为一个没有任何紧张感的例行事件。开发团队可以在日常开发的任何时间进行产品级的发布,而不需要详细的发布方案或者特殊的后期测试。

完成CI中构建以及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库。为了实现高效的持续交付流程,务必要确保CI已内置于开发管道。持续交付的目标是拥有一个可随时部署到生产环境的代码库。

在持续交付中,每个阶段(从代码更改的合并,到生产就绪型构建版本的交付)都设计测试自动化和代码发布自动化。在流程结束时,运维团队可以快速,轻松的将应用部署到生产环境中或发布给最终使用的用户。

CD集中依赖于部署流水线,团队通过流水线自动化测试和部署过程。此流水线是一个自动化系统,可以针对构建执行一组渐进的测试套件。CD具有高度的自动化,并且在一些云计算环境中也易于配置。在流水线的每个阶段,如果构建无法通过关键测试会向团队发出警报。否则,将继续进入下一个测试,并在连续通过测试后自动进入下一个阶段。流水线的最后一部分会将构建部署到和生产环境等效的环境中。这是一个整体的过程,因为构建,部署和环境都是一起执行和测试的,他能让构建在实际的生产环境可部署和可验证。

持续部署

持续部署扩展了持续交付,以便软件构建在通过所有测试时自动部署。在这样的流程中,不需要人为决定何时及如何投入生产环境。CI/CD 系统的最后一步将在构建后的组件/包退出流水线时自动部署。此类自动部署可以配置为快速向客户分发组件,功能模块或修复补丁,并准确说明当前提供的内容。采用持续部署的组织可以将新功能快速传递给用户,得到用户对于新版本的快速反馈,并且可以迅速的处理任何明显的缺陷。用户对无用或者误解需求的功能快速反馈有助于团队规划投入,避免将精力集中于不容易产生回报的地方。

随着DevOps的发展,新的用来实现CI/CD流水线的自动化工具也在不断涌现。这些工具通常能与各种开发工具配合,包括像GitHub这样的代码仓库和Jira这样的Bug跟踪工具。此外,随着SaaS这种交付方式变得更受欢迎,许多工具都可以在现代开发人员运行程序的云环境中运行,例如GCP和AWS。但是对于一个成熟的CI/CD管道(Pipeline)来说,最后的阶段是持续部署。作为持续交付-自动将生产就绪型构建版本发布到代码存储库-的延伸,持续部署可以自动将应用发布到生产环境中。

64.什么是CI/CD管道?

CI/CD管道是与自动化工具和改进的工作流程集成的部署管道。如果执行得当,他将最大程度的坚守人为错误,并增强整个SDLC的反馈循环,使团队可以在更短的时间内交付较小的发行版。

典型的CI/CD管道必须包括以下阶段:

构建阶段

测试阶段

部署阶段

自动化测试阶段

部署到生产

65.如何理解DevOps?

DevOps是Development和Operations的组合,是一种方法论,是一组过程,方法与系统的统称,用于促进应用开发,应用运维和质量保障(QA)部门之间的沟通,协作与整合。以期打破传统开发和运营直接的壁垒和鸿沟。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python重温笔记番外篇

1. 写在前面 今天这篇文章是python重温笔记的番外,整理一些面试中的问题以及遇到过的一些坑, 正好借着这个机会把前面的知识进行一个串联, 要不然这些知识很容易就会遗忘, 毕竟知识多而又不太容易常用到。 涉及到的知识包括列表推…

Databend 的算力可扩展性

作者:尚卓燃(PsiACE) 澳门科技大学在读硕士,Databend 研发工程师实习生 Apache OpenDAL(Incubating) Committer PsiACE (Chojan Shang) GitHub 对于大规模分布式数据处理系统,为了更好应对数据、流量、和复杂性的增长…

湖南大学-数据库系统-2023期末考试【原题】

前言 早上11:00考完的考试,下午回来打了三把LOL之后,凭着回忆把题目重现出来了。 在复习的时候刷了15,16,17,18,19,21六年的卷子,感觉题目都差不多,但是难度…

BAT036:TXT与DOC格式互转、DOC与DOCX格式互转

引言:编写批处理程序,可实现txt与doc文档格式互转、doc与docx文档格式互转。 一、新建Windows批处理文件 参考博客: BAT002:在右键菜单新建中添加【Windows批处理文件】_为右键菜单添加bat-CSDN博客 二、TXT与DOC格式互转 1.右键新建的批处理文件,点击【编辑】。 ​ …

让电脑变得更聪明——用python实现五子棋游戏

作为经典的棋类游戏,五子棋深受大众喜爱,但如果仅实现人与人的博弈,那程序很简单,如果要实现人机对战,教会计算机如何战胜人类,那就不是十分容易的事了。本文我们先从简单入手,完成五子棋游戏的…

ES两个小时没连接竟然会出现bug,为此老板给我夹了个鸡腿。。。

前言 前段时间上线了个项目,测试每天早上来摸鱼之前会点一点,发现第一次点会报错,然后一天都没问题,刚开始没在意,后来每天上班来摸鱼前点第一次都会出错,发现真的摸到鱼了,然后就给我提了个bu…

深耕汽车检测设备领域,引领行业技术革新

在汽车工业飞速发展的今天,汽车检测技术作为保障车辆安全、提升维修效率的重要手段,日益受到行业内外的高度关注。康士柏汽车检测线设备厂家,作为这一领域的佼佼者,凭借其深厚的技术积累和卓越的产品品质,正引领着行业…

CSS基础笔记-01CSS概述

文章目录 前言CSS是什么CSS的作用CSS语法添加CSS的方法 前言 CSS是什么?有什么作用?怎么编写CSS?怎样添加CSS?本文对CSS的四个方面作了学习并形成学习笔记。 CSS是什么 CSS (Cascading Style Sheets,层叠…

java字节码

1. 字节码 1.1 什么是字节码? Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供…

小寒节气吃什么?来一道烤排骨吧!

小寒节气是中国传统二十四节气中的第23个节气。 在寒冷的冬季,为了驱寒保暖,人们会选择一些具有温热性质的食物来进补。那么,小寒节气应该吃什么呢?羊肉是冬季进补的佳品。羊肉富含丰富的蛋白质和热量,能够帮助身体抵…

Go语言并发模式视角思考

犹记得2019年中旬进行知识点的学习和demo的练习,熟悉各种语法和并发调度的场景, 在2019年末开始参与项目实战开发和逻辑梳理 Go语言的接触也是更多探索和业务的拆件,做一些雏形工具,来慢慢的孵化业务生态 后来陆陆续续&#xff…

03- OpenCV:矩阵的掩膜操作

目录 1、矩阵的掩膜操作 简介 2、获取图像像素指针 3、掩膜操作解释 4、代码演示 1、矩阵的掩膜操作 简介 在OpenCV中,矩阵的掩膜操作是一种通过使用一个二进制掩膜来选择性地修改或提取图像或矩阵的特定区域的方法。 掩膜是一个与原始图像或矩阵具有相同大小的…

力扣题:高精度运算-1.3

力扣题-1.3 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:43. 字符串相乘 解题思想:类似计算时采用的竖式乘法。首先取得num2的低位,并补齐对应的0,然后与num1进行相乘,然后进行字符串的相加操作。…

【萤火虫系列教程】2/5-Adobe Firefly 文字​生成​图像

文字​生成​图像 登录账号后,在主页点击文字生成图像的【生成】按钮,进入到文字生成图像 查看图像 在文字生成图像页面,可以看到别人生成的图像。 点击某个图像,就可以进入图像详情,可以看到文字描述。 生成图像 我…

c++之迭代器

目录 一、迭代器 二、几种常见的迭代器类型 三、使用迭代器时注意事项 一、迭代器 在C中,迭代器是一种用于遍历容器元素的对象。迭代器提供了一种通用的方式来访问各种不同类型的容器,如数组、向量、列表、集合和映射等。 使用迭代器可以避免直接操作…

c++牛客总结

一、c/c语言基础 1、基础 1、指针和引用的区别 指针是一个新的变量,指向另一个变量的地址,我们可以通过这个地址来修改该另一个变量; 引用是一个别名,对引用的操作就是对变量本身进行操作;指针可以有多级 引用只有一…

python股票分析挖掘预测技术指标知识大全(1)

本人股市多年的老韭菜,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择python因为够强大,它提供了很多高效便捷的数据分析工具包, 我们已经初步的接触与…

leetcode 每日一题 2024年01月01日 经营摩天轮的最大利润

题目 1599 经营摩天轮的最大利润 你正在经营一座摩天轮,该摩天轮共有 4 个座舱 ,每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱,但每次轮转都需要支付一定的运行成本 runningCost 。摩天轮每次轮转都恰好转动 1 / 4 周。 给你…

LeetCode 2487. 从链表中移除节点:单调栈

【LetMeFly】2487.从链表中移除节点:单调栈 力扣题目链接:https://leetcode.cn/problems/remove-nodes-from-linked-list/ 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 1: 输…