DevOps(10)

news2024/11/20 14:18:19

目录

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.coloradmin.cn/o/1358365.html

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

相关文章

基于Java SSM框架实现旅游资源网站系统项目【项目源码+论文说明】

基于java的SSM框架实现旅游资源网站系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个旅游资源网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述旅…

Redis:原理+项目实战——Redis实战2(Redis实现短信登录(原理剖析+代码优化))

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理项目实战——Redis实战1(session实现短信登录(并剖析问题)&#xff09…

Ambiq推出语音增强人工智能以消除物联网应用中的噪声

超低功耗半导体解决方案供应商Ambiq推出了其最新产品——神经网络语音增强器 (NNSE),并已将该方案加入到neuralSPOT的(开源模型)Model Zoo中。这一高度优化过的AI模型可以高效实时地将背景噪声从设备对话中去除,从而在嘈杂的环境中…

基于Kettle开发的web版数据集成开源工具(data-integration)-应用篇

目录 📚第一章 基本流程梳理📗页面基本操作📗对应后台服务流程 📚第二章 二开思路📗前端📗后端 🔼上一集:基于Kettle开发的web版数据集成开源工具(data-integration)-介绍篇 *️⃣主…

对话小仙炖副总裁张勇:内容价值将成为直播电商的核心趋势和竞争力

“ 激活中医典籍里的智慧,坚持内容化之路,服务好消费者。” 整理 | 飞族 编辑 | 渔舟 出品|极新&北京电子商务协会 随着直播电商的影响力越来越大,对品牌而言,直播不仅是一种单纯的卖货渠道,…

Open3D聚类算法

按照官网的例子使用聚类,发现结果是全黑的。 经过多次测试发现 eps3.3, min_points1这里是关键 min_points必须等于1否则无效果 import time import open3d as o3d; import numpy as np; import matplotlib.pyplot as plt#坐标 mesh_coord_frame o3d.geometry.Tria…

力扣题:高精度运算-1.3

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

使用 pg_stat_statements 优化查询

使用 pg_stat_statements 优化查询 就使用量和社区规模而言,PostgreSQL 是增长最快的数据库之一,得到许多专业开发人员的支持,并得到广泛的工具、连接器、库和可视化应用程序生态系统的支持。 PostgreSQL 也是可扩展的:使用 Postg…

实现HSRP-热备份路由协议

实现HSRP-热备份路由协议 <HSRP多组实现> 网络工程师必会的企业网络常用双机热备协议之HSRP。 实验拓扑: 实验目的: 通过配置多组HSRP实现网关自动切换和链接负载均衡,既当网络正常时PC1,PC3通过R1到达R3,PC2,PC4通过R2到达R3,当R1或R2发生故障时网关能自动切换,以确…

企业微信开发:自建应用:获取企业微信IP段(用于防火墙配置)

概述 在企业微信开发流程中&#xff0c;为了确保与企业微信API的网络通信安全&#xff0c;并适应防火墙配置要求&#xff0c;开发者需要获取企业微信API服务的IP地址范围。这样&#xff0c;仅允许与企业微信官方通信的合法请求通过防火墙&#xff0c;从而保障数据传输的安全性…

教学目标是什么

教学目标&#xff0c;作为教学活动的灵魂之所在&#xff0c;对于教育者和学生都至关重要。然而&#xff0c;你是否曾对此产生过疑问&#xff1a;教学目标究竟是什么&#xff1f;它又如何影响我们的教学活动呢&#xff1f; 教学目标就像一座灯塔&#xff0c;为教学活动指明方向&…

MapInfo Pro和Python基础知识

MapInfo Pro用户长期以来一直使用MapBasic脚本语言来自动化任务、构建自定义应用程序、创建Pro的特定领域自定义、将Pro与其他工具集成等。 MapBasic主要是一种编译语言&#xff0c;这对非程序员来说有点障碍。 我们确实有MapBasic窗口&#xff0c;它允许MapBasic语句和代码直接…

罗德与施瓦茨FSVA40信号和频谱分析仪

罗德与施瓦茨FSVA40是一款功能信号和频谱分析仪&#xff0c;适用于从事射频系统的开发、生产、安装和服务的用户。FSVA40信号和频谱分析仪系列始终提供最佳的价格和性能组合&#xff0c;无论是根据最新通信标准测试生产中的无线设备&#xff0c;还是测量低相位噪声、高灵敏度和…

根本记不住MySQL进阶查询语句

1 MySQL进阶查询 1.1 MySQL进阶查询的语句 全文以数据库location和Store_Info为实例 ---- SELECT ----显示表格中一个或数个字段的所有数据记录 语法&#xff1a;SELECT "字段" FROM "表名"; select 列名 from 表名 ; ---- DISTINCT ----不显示重复的数…

农业银行RPA实践 3大典型案例分析

零接触开放金融服务在疫情之下被越来越多的银行和客户所认同&#xff0c;引起了更广泛的持续关注&#xff0c;各家银行纷纷开展产品服务创新&#xff0c;加速渠道迁移&#xff0c;同时通过远程办公、构建金融生态等方式积极推进零接触开放金融体系建设。 随着商业银行科技力量的…

后端开发——JDBC的学习(三)

本篇继续对JDBC进行总结&#xff1a; ①通过Service层与Dao层实现转账的练习&#xff1b; ②重点&#xff1a;由于每次使用连接就手动创建连接&#xff0c;用完后就销毁&#xff0c;这样会导致资源浪费&#xff0c;因此引入连接池&#xff0c;练习连接池的使用&#xff1b; …

新年福利|这款价值数万的报表工具永久免费了

随着数据资产的价值逐渐凸显&#xff0c;越来越多的企业会希望采用报表工具来处理数据分析&#xff0c;了解业务经营状况&#xff0c;从而辅助经营决策。不过&#xff0c;企业在选型报表工具的时候经常会遇到以下几个问题&#xff1a; 各个报表工具有很多功能和特性&#xff0c…

Python数据处理库之tablib详解

概要 Python 提供了许多库和工具来处理数据&#xff0c;其中之一就是 tablib。tablib 是一个功能强大且易于使用的库&#xff0c;用于处理各种数据格式&#xff0c;包括Excel、CSV、JSON等。它不仅可以用于数据导入和导出&#xff0c;还支持数据转换、过滤、合并等操作。本文将…

《C++语言程序设计(第5版)》(清华大学出版社,郑莉 董渊编著)习题——第2章 C++语言简单程序设计

2-28 用穷举法找出1~100的质数并显示出来。分别使用while、do-while、for循环语句实现。 // 使用while循环#include <iostream>using namespace std;int main() {int number 2;cout << "1~100之间的质数有&#xff1a;";while (number < 100) {int …

HarmonyOS应用开发之ArkTS语言学习记录

1、ArkTS介绍 ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上&#xff0c;对TS的动态类型特性施加更严格的约束&#xff0c;引入静态类型。同时&#xff0c;提供了声明式UI、状态管理等相应的能力&#xff0c;让开发者…