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)部门之间的沟通,协作与整合。以期打破传统开发和运营直接的壁垒和鸿沟。

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

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

相关文章

Open3D将聚类结果显示或者保存

将聚类结果按大小排序,并取出最大的4个结果 import time import open3d as o3d; import numpy as np; import matplotlib.pyplot as plt#坐标 mesh_coord_frame o3d.geometry.TriangleMesh.create_coordinate_frame(size355, origin[0, 0, 0]) #mesh_coord_frame…

简述游戏行业中的攻击种类和适用的服务器

我们都知道游戏行业竞争大,特别是同行竞争、打击报复和网络敲诈等多种因素,游戏客户端也就成了主要受害者。而且据有效统计百分之80的DDOS攻击都来自游戏行业。因此游戏公司出品一款新的游戏,最担忧的问题不是推广不到位,也不是人…

2023APMCM亚太数学建模C题 - 中国新能源汽车的发展趋势(2)

五.问题二模型建立和求解 5.1 问题二模型建立和求解 针对题目二,题目要求收集中国新能源电动汽车行业发展数据,建立数学模型描述,并预测未来十年的发展。由于在第一文中,我们已经收集了一定的新能源行业发展数据&…

【漏洞复现】ActiveMQ反序列化漏洞(CVE-2015-5254)

Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务,是面向消息中间件(MOM)的最终实现,它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Re…

云计算运维工程师面试题(二)

云计算运维工程师面试题(二) 1. 什么是云计算?云计算的主要特点是什么?2. 云计算的服务模型和部署模型?3. 什么是弹性伸缩?如何实现云计算的弹性伸缩?4. 云计算中的高可用性是如何实现的?5. 云计算中的数据安全如何保障?6. 云计算中的容灾和备份策略是如何设计的?7. …

数据分析求职-岗位介绍

这是咱们干货开始的第一篇文章,后续我尽量会保持日更的节奏和大家做分享~ 在未来所有分享的内容展开之前,咱们有必要先彻底、深入地了解下数据分析这个岗位。如果你还在犹豫是否要走数据分析的路,或者你已经拿了数据分析的offer想了解下将来…

插入排序详解!!!(简单排序),基本功排序C语言版

目录 1.什么是插入排序 2.插入排序的源代码 3.源代码详解 1.什么是插入排序 这是一个插入排序的流程图,插入排序 很像我们玩斗地主,玩牌,斗地主在开始前,我们是不是要给我们手上的牌排序啊,假设我们理牌有一个规矩就…

CLM陆面过程模式实践技术应用

NCAR陆面模式CLM (Community Land Model)是地球系统模式CESM (Community Earth System Model)中的陆面过程模式分量,是在结合了BATS、LSM和IAP94等众多陆面模式的优点后,加入水文过程而开发出的综合性陆面模式,是目前国际上发展最为完善且得到…

MySQL-DDL

DDL是数据定义语言,用来定义数据对象(数据库,表,字段) 数据库操作: 1.查询: 查询所有数据库:SHOW DATABASES; 查询当前数据库:SELECT DATABASE(); 2.创建: C…

UI测试平台RunnerGo一键安装教程

现在安装RunnerGo仅需要一条命令!目前支持系统:Centos、Debian、Ubuntu三种。下面给大家介绍一下RunnerGo安装使用流程: Step1:复制以下命令 wget https://img.cdn.apipost.cn/running_go/img/wiki/runnergo.tar && ta…

第二天学习记录

第二天 C++随便提一提,目前不深究,有兴趣了解重点学习编译原理选学C语言操作系统汇编语言编译器设计领域的技术C++ 随便提一提,目前不深究,有兴趣了解 C++历史,原理,过程式编程,面向对象编程,泛型编程,标准,技巧。为了应付复杂程度不断提高的现代化编程任务,C++引…

基于SSM的新闻网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

【Python库】pillow (PIL)库的用法介绍

一、引言 Pillow库是Python中用于图像处理的一个非常强大的工具,它实际上是Python Imaging Library(PIL)的一个分支。Pillow库提供了广泛的图像处理功能,包括但不限于: 图像的读取、写入和保存:Pillow库可…

鸿蒙OS应用开发之日期选择

前面学习了时间选择组件,实现了时间的选择,这样非常方便用户进行时间的输入,通过手动就可以输入时间,比直接文本输入要省不少时间,特别对于手机这样单手操作的设备,更加重要了。因此,日期的输入工作也不能落后,本文将要学习日期选择组件,这样就可以实现日期通过手上下…

【React系列】ES6学习笔记(二)Promise、async\await

本文参考自电子书《ECMAScript 6 入门》:https://es6.ruanyifeng.com/ Promise 对象 1. Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了…

打破闲鱼商品搜索瓶颈!云端电商API接口让你畅享商品详情关键词搜索的便利!

在闲鱼卖家的日常经营中,商品搜索是一个至关重要的环节。但是,由于闲鱼平台商品信息繁杂,卖家往往很难通过手动搜索的方式找到符合自己需求的商品。为了解决这一问题,云端电商API接口应运而生。联讯数据将详细介绍云端电商API接口…

有没有游泳可以戴的耳机?游泳耳机入耳式好,还是骨传导好

游泳是一项既能锻炼身体又能让人放松心情的运动。我们知道,音乐能够为我们的水上时光增添更多的乐趣。那么,在众多游泳耳机中,如何选择一款既适合自己的需求又具备良好性能的产品呢? 首先,我们要了解的是,…

[原创][R语言]股票分析实战[8]:因子与subset的关系

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

TCL学习笔记(持续更新)

前言: TCL(tool common language)是一种通用工具语言,很多eda tool都支持tcl,学习了解一些tcl基本语法还是很有必要的。 1:基础概念 解释器: #!/usr/bin/tclsh 打印: puts -> p…

delvewheel进行repair时报Unable to find library: msvcr100.dll【已解决】

问题描述 我自己编译了我下载的一个开源软件pyuvc,编译出whl文件后使用delvewheel进行repair,也就是把它依赖库dll库拷贝到whl文件中。等效的的执行命令是: python.exe -m delvewheel repair -w .\wheelhouse\ dist\pupil_labs_uvc-1…