云安全—docker原理

news2024/11/18 23:33:59

0x00 前言

因为要学习docker相关的检测技术,所以需要对docker的原理进行基本的原因,不求彻底弄懂,但求懂点皮毛,如有不妥之处,还请斧正。

0x01 docker概述

docker起源

docker公司是在旧金山,由法裔美籍开发者和企业家Solumon Hykes创立。

docker公司期初是一家PaaS的提供商。之后做了一款工具,最后命名为docker。

docker 来源于英国口语,意为码头工人,即词从船上装卸货物的人。

docker的大多数内容都是go语言开发的。

0x02 Docker 底层原理

docker的底层原理是利用了linux的Cgroups和Namespace技术。

1.Cgroups

Cgroups主要的作用是用作资源的分配和限制,英文是Control groups。

Cgroup主要控制的资源包括,CPU,内存,网络和磁盘。

也就是说容器可以通过cgroups来生成一个新的主机。

2.Namespace

命名空间,实际上这个功能的作用就是进行隔离,资源划分,让划分的内容成为独立的一个部分。

主要分割的内容包括进程ID、主机名、用户名、用户ID,文件名,网络和通信资源的隔离。

0x03 Docker引擎架构

先来看图,图是深入浅出docker的作者提供的。

在这里插入图片描述

从高到低看

1.Docker Deamon

字面意思就是docker的守护线程的意思。docker Client和docker Deamon进行通信,完成用户的各种操作请求。这里有一个潜在的问题就是,既然有Docker Client端,那么就有可能Client端和Docker Deamon不在同一个主机的问题,那么这里的Docker Deamon接口配置不当,就会存在一系列的安全问题。甚至是同一台服务器上如果接口存在问题也会面临相同的风险。

1.1 Libcontainer

新版的docker通过Libcontainer功能去进行创建容器等相关操作

1.2 runc

runc是对Libcontainer进行的一个工具封装。

在这里插入图片描述

1.3 shim

shim 实际上就是一个代理程序,用来管理Docker容器。

0x04 Docker镜像层

镜像层主要分为:

  • 基础镜像层,系统
  • 应用程序依赖
  • 应用程序代码层
  • 只读层
  • 共享层
  • 镜像的唯一识别

补充知识

docker

Docker是一个开源的应用程序容器引擎,可以在linux、windows和macOS上运行。它可以将应用程序和它们的依赖项打包到一个可移植的容器中,从而实现更轻松快捷的应用程序开发、交付、部署和运行。

Docker 的主要组件包括 Docker引擎、Docker Hub 和 Docker Compose。

Docker引擎是一个客户端-服务器应用程序,可以通过 REST API 或命令行与它进行交互。它包括 Docker daemon、Docker CLI、Docker REST API 和 Docker SDK。

Docker Hub 是一个公共的镜像仓库,让用户可以在其中存储和共享 Docker 容器镜像。

Docker Compose 是一个工具,可将多个容器组合成一个应用程序,从而更轻松地管理多个容器部署。

Docker的主要特点包括:

  1. 轻量级容器:Docker 容器使用宿主机的内核,因此比虚拟机更轻量级。

  2. 简化配置:Docker 容器可以使用 Dockerfile 来描述应用程序的环境和依赖关系,从而使配置更加简单。

  3. 可移植性:Docker 容器可以在任何支持 Docker 引擎的环境中运行,从而实现更高的可移植性。

  4. 快速部署:Docker 容器可以快速地打包、部署和启动,从而大大缩短部署时间。

  5. 管理容器:Docker 容器可以通过 Docker 命令行或 Docker SDK 进行管理,从而更方便地管理容器。

docker公司介绍

Docker 是一个开源的容器化平台,可以简化应用程序的创建、部署和运行。Docker 公司是 Docker 技术的开发者和支持者,成立于 2013 年,并于 2019 年被 Mirantis 公司收购。

Docker 公司提供了 Docker Engine、Docker Swarm、Docker Hub 等一系列工具和服务,帮助用户构建和管理容器化应用。其中,Docker Engine 是 Docker 公司最核心的产品,它是一个轻量级的容器引擎,可以在任何基础设施上运行。

Docker Swarm 是 Docker 公司提供的容器编排工具,可以让用户轻松构建和管理容器集群。Docker Hub 是 Docker 公司的官方镜像仓库,用户可以从中获取官方和社区维护的容器镜像。

除了开源产品和服务,Docker 公司还提供了商业版本的 Docker Enterprise,它提供了更多的功能和支持服务,适合于企业级应用的部署和管理。

k8s

K8s is short for Kubernetes, an open-source container orchestration platform developed by Google. It automates the deployment, scaling, and management of containerized applications. K8s provides a framework for deploying and managing containerized applications across a cluster of nodes and allows for flexible configuration of compute, storage, and network resources. It is designed to be highly scalable and resilient, enabling organizations to easily manage large-scale container deployments.

k8s的优势

Kubernetes的主要优势包括:

  1. 高可用性:Kubernetes是设计为高可用性的平台,它采用了容错,自动修复和重新调度的机制,确保应用程序在节点故障或系统崩溃时不会中断。

  2. 可扩展性:Kubernetes可以轻松地扩展应用程序,根据需要进行水平扩展或垂直扩展,并提供自动负载平衡。

  3. 自动化:Kubernetes自动管理容器的部署,伸缩,升级和维护,使开发人员和DevOps人员可以专注于应用程序的构建和测试,而不必担心基础设施的管理。

  4. 灵活性:Kubernetes支持多种容器运行时(如Docker,CRI-O,Containerd等),可以运行在任何云环境或自建的物理机群集上,并且可以与多种服务和工具(如服务网格,CI /CD工具,监控和日志记录工具等)集成。

  5. 安全性:Kubernetes提供了内置的安全机制,如身份验证,授权和加密,以确保应用程序数据的机密性和完整性。它还支持网络隔离和容器映像签名验证等高级安全特性。

  6. 社区支持:Kubernetes有庞大的社区支持,它积极开发新特性和修复bug,并提供详细的文档和培训资源,以帮助开发人员和DevOps人员快速掌握技能。

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

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

相关文章

凡哥说机丨双十一网络电视盒子哪个品牌好?目前最强电视盒子

跟平时相比,双十一的价格更低,近来我的后台也收到了超级多的私信咨询电视盒子的问题,凡哥这期将盘点的是目前最强的电视盒子,双十一想买电视盒子不知道网络电视盒子哪个品牌好,那一定不能错过这篇文章了。 推荐一&…

本地FTP YUM源报错处理

一、问题描述 某次OS升级到Anolis 8.6后,但是还需要centos 6.5的yum源,恢复回去后,yum更新,报如下错误: Errors during downloading metadata for repository ‘base’: Curl error (8): Weird server reply for ftp…

基于springboot小区团购管理系统

基于springboot小区团购管理系统的设计与实现 摘要 小区团购管理系统是一款基于Spring Boot框架的Web应用,为小区居民提供了一个方便的平台,以协调和管理各种团购活动。该系统的主要目标是促进小区居民之间的互助合作,通过集中采购来降低商品…

c进阶测试题

选择题 1.请问该程序的输出是多少&#xff08;C&#xff09; #include<stdio.h> int main(){unsigned char i 7;int j 0;for(;i > 0;i - 3){ j;} printf("%d\n", j);return 0; }A. 2 B. 死循环 C. 173 D. 172 首先unsigned char型是不会为负数&#xff…

分享一个逻辑题_一眼望去无法下手

1. 这道题的答案是 A.A B.B C.C D.D 2. 第 5 题的答案是 A.C B.D C.A D.B 3. 以下选项中哪一题的答案与其他三项不同 A. 第 3 题 B. 第 6 题 C. 第 2 题 D. 第 4 题 4. 以下选项中哪两题的答案相同 A. 第 1&#xff0c;5 题 B. 第 2&#xff0c;7 题 C. 第 1&#xff0c…

基于springboot实现基于Java的超市进销存系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现基于Java的超市进销存系统演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;超市进销存系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#x…

Visa股票仍然值得投资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;尽管Visa(V)的估值高于市场平均水平&#xff0c;但仍值得买入。 &#xff08;2&#xff09;Visa拥有强劲的基本面&#xff0c;销售额和每股收益一直在稳定增长&#xff0c;股息…

践行国策,男性生育力保护与修复新启航

金秋送爽&#xff0c;丹桂飘香&#xff01;值2023年男性健康日即将到来之时&#xff0c;10月22日&#xff0c;由中国优生优育协会生育力保护与修复专业委员会、南京大学医学院附属鼓楼医院联合举办的“首届男性生育力保护与修复诊疗技术培训班”暨“中国优生优育男性生育力保护…

一分钟带你了解什么是0day攻击什么是Nday攻击

1. 什么是零日漏洞 零日攻击是指利用零日漏洞对系统或软件应用发动的网络攻击。 零日漏洞也称零时差漏洞&#xff0c;通常是指还没有补丁的安全漏洞。由于零日漏洞的严重级别通常较高&#xff0c;所以零日攻击往往也具有很大的破坏性。目前&#xff0c;任何安全产品或解决方案…

工业交换机的三个重要指标,你知道吗?

网管型交换机产品提供了多种网络管理方式&#xff0c;包括终端控制口&#xff08;Console&#xff09;、Web页面以及支持Telnet远程登录网络。所以&#xff0c;网络管理员能够通过本地或远程方式实时监控该交换机的工作状态和网络运行状况&#xff0c;并全面管理所有交换端口的…

springcloud笔记 (8) -网关 Gateway

网关 出国需要过海关 网关&#xff1a;网络的关卡 网关的作用 1&#xff1a;路由转发 2&#xff1a;安全控制 保护每个服务&#xff0c;不需要将每个暴露出去 3&#xff1a;负载均衡 1.没有网关&#xff1a;客户端直接访问我们的微服务&#xff0c;会需要在客户端配置很多…

Mysql第三篇---响应太慢?数据库卡顿?如何优化?

Mysql第三篇—响应太慢&#xff1f;数据库卡顿&#xff1f;如何优化&#xff1f; 统计SQL的查询成本&#xff1a;last_query_cost 一条SQL查询语句在执行前需要确定查询执行计划&#xff0c;如果存在多种执行计划的话&#xff0c;MySQL会计算每个执行计划所需要的成本&#x…

联盟认证 | 聚铭网络正式成为中国反网络病毒联盟成员

近日&#xff0c;聚铭网络凭借强劲的技术实力和产品优势&#xff0c;被认证为中国反网络病毒联盟&#xff08;以下简称“ANVA联盟”&#xff09;成员单位。作为国内领先的安全运营商&#xff0c;聚铭网络一直致力于网络安全智能分析和检测&#xff0c;提供全面的信息安全防护&a…

从一个webpack loader中学习

chalk&#xff1a;给终端输出加一些自定义的样式 loader-utils&#xff1a;webpack的loader配置中会通过options传入一些用户自定义参数&#xff0c;就可以通过该包提供的getoptions()获取 node-fetch&#xff1a;Node.js的模块&#xff0c;用于从远程服务器获取数据 关于bab…

vue按特定字符串切割后端传输的图片路径

一、分隔字符 /userfiles/1/attachment/null/2023/10/13967b6b8332413f92ab67735873aa76.jpg|/userfiles/1/attachment/null/2023/10/17fd6e2c16144e66b8cd3ec495e6745f.png 后端传来图片的路径是按照 | 进行分隔的 首先在return中定义数组 在methods中添加分隔方法 //将查询…

请求转发和响应重定向

请求转发与响应重定向是什么&#xff1f; 请求转发和响应重定向是两种在HTTP协议中常见的操作&#xff0c;用于在服务器和客户端之间传递数据。 请求转发&#xff08;RequestDispatcher&#xff09;是服务器收到请求后&#xff0c;从一个资源跳转到另一个资源的操作。这种操作…

机器学习-学习率:从理论到实战,探索学习率的调整策略

目录 一、引言二、学习率基础定义与解释学习率与梯度下降学习率对模型性能的影响 三、学习率调整策略常量学习率时间衰减自适应学习率AdaGradRMSpropAdam 四、学习率的代码实战环境设置数据和模型常量学习率时间衰减Adam优化器 五、学习率的最佳实践学习率范围测试循环学习率&a…

递归方法实现字符串反转函数

递归函数是一种在函数内部调用自身的函数。它通过将复杂的问题分解成更小的子问题来解决。递归函数通常包含两部分&#xff1a;基本情况和递归调用。请使用递归方法实现字符串反转的C语言函数。 #include <stdio.h>void reverseString(char* str) {///Begin///// 递归基…

【M365运维】给从本地同步到O365的DL添加 Send As权限

【问题】在一个混合部署的M365环境里&#xff0c;邮件系统已经从本地迁移到O365&#xff0c;相关的AD用户、AD 组等账号数据也都同步到了Azure AD。用户提出要求想为一个DL 添加 Send As 权限。 由于DL是从本地迁移到O365的&#xff0c;在O365的Exchange 管理中心里进行设置时…

外汇天眼:如何快速玩转外汇市场?这个技巧你必须知道!

在外汇市场中&#xff0c;决定交易成功与否的关键在于投资者的技能和知识扎不扎实&#xff0c;这对投资者获取利润至关重要。然而对于投资者来说&#xff0c;外汇交易市场又是一个复杂且多变的市场&#xff0c;要在外汇市场中获得成功并不容易&#xff0c;需要深入地了解、不断…