云安全—docker原理

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.rhkb.cn/news/171364.html

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

相关文章

《实现领域驱动设计》

DDD入门 1.1 DDD是什么? DDD是一种软件开发方法 DDD将领域专家和开发人员聚集到一起,开发的软件能够反映出领域专家的思维模型。目标是:交付最具业务价值的软件。DDD关注业务战略:指引我们如何实现面向服务架构(ser…

Unity报错:Microsoft Visual C# Compiler version

Unity报错:Microsoft Visual C# Compiler version 问题解决方案总结 问题 Microsoft Visual C# Compiler version 2.9.1.65535 (9d34608e) Copyright © Microsoft Corporation 切换版本或者使用老项目的时候可能会出现这个报错,这个报错就是项目设置的问题 …

AI新能量!FortiGate NGFW面向数据中心全面集成FortiGuard AI 安全服务

企业IT技术正在以惊人的速度发展,转型最大的领域之一是下一代防火墙(NGFW)市场。如今,混合云、多云、边缘等多种基础设施形态共存,已经成为大部分企业的常态,不断扩张的攻击面需要不同形态防火墙的安全防护…

uniapp 单选框以及多选框样式更改

radio以及checkbox默认样式不符合自身需求时,根据自身需求更改样式,以下是自身的示例: 单选: 多选: 由于uniapp自身包含了一套默认的样式,所以如果不想全局更改只想在某个单据页面使用的话,就…

RDMA概览

RDMA(Remote Direct Memory Access,远程直接内存访问),指能够访问(读写)远程机器的内存。有多种支持RDMA的网络协议,包括:Infiniband、RoCE和iWAPP。具体的API定义包含在内核文件linux/include/rdma/ib_verbs.h reference: 【精选…

Pytorch--3.使用CNN和LSTM对数据进行预测

这个系列前面的文章我们学会了使用全连接层来做简单的回归任务,但是在现实情况里,我们不仅需要做回归,可能还需要做预测工作。同时,我们的数据可能在时空上有着联系,但是简单的全连接层并不能满足我们的需求&#xff0…

Android---StartActivity启动过程

在手机桌面应用中点击某一个 icon 之后,最终是通过 startActivity 去打开某一个 Activity 页面。我们知道,Android 中的一个 APP 就相当于一个进程。所以,startActivity 操作中还需要判断,目标 Activity 的进程是否已经创建。如果…

米尔AM62x核心板助力新一代工业4.0升级

米尔AM62x核心板 续写AM335x经典 在过去的十几年中,TI Sitara系列推出了很多优秀的处理器,其中在工业、电力、医疗等领域有着广泛应用的AM335x系列处理器,引领工业市场从MCU向MPU演进,帮助产业界从ARM9迅速迁移至高性能Cortex-A…

Spring Authorization Server 1.1 扩展实现 OAuth2 密码模式与 Spring Cloud 的整合实战

目录 前言无图无真相创建数据库授权服务器maven 依赖application.yml授权服务器配置AuthorizationServierConfigDefaultSecutiryConfig 密码模式扩展PasswordAuthenticationTokenPasswordAuthenticationConverterPasswordAuthenticationProvider JWT 自定义字段自定义认证响应认…

【ARM Trace32(劳特巴赫) 使用介绍 2 -- Trace32 cmm 脚本基本语法及常用命令】

文章目录 Trace32 CMM 概述1.1 Trace32 系统命令 SYStem1.1.1 Trace32 SYStem.CONFIG1.1.2 SYStem.MemAccess1.1.3 SYStem.Mode1.1.3.1 TRST-Resets the JTAG TAP controller and the CPU internal debug logic1.1.3.2 SRST- Resets the CPU core and peripherals 1.2 Trace32 …

【Linux】解决缓存锁问题:无法获得锁 /var/lib/dpkg/lock-frontend

今天在运行apt-get update更新软件包后,突然发现安装新的软件出现了这个报错:正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 1855(unattended-upgr)持有。如图。 这个错误通常是由于其他进程正在…

“从部署到优化,打造高效会议管理系统“

目录 引言一、部署单机项目 - 会议OA1.1 硬件和软件环境准备1.2 检查项目1.3 系统部署1.后端部署 二、部署前后端分离项目 - SPA项目后端部署2.前端部署 总结 引言 在现代化办公环境中,会议是组织沟通、决策和合作的重要方式之一。为了提高会议的效率和质量&#x…

Win11安装ise14.7~不需要虚拟机了~

之前一直无法在win11上安装ise14.7,网上搜索也无果,所有一直vmware虚拟机使用。直到最近看了水木上jesce的回复,试了下果然可以直接安装使用的。 步骤如下即可: 1.安装时切勿勾选最后一项,Enable WebTalk to send so…

2023 10月最新Vmd 下载安装教程,WindowsLinux

文章目录 下载Vmdwindows版本安装LINUX版本安装 下载Vmd 谷歌搜索VMD 点击左下角download VMD 可选择对应版本 注:点击后会出现输入用户名和密码,由于我已注册,界面不见了,所以直接描述一下。 输入用户名和密码然后会出现让登记…

SLAM从入门到精通(lidar的运动畸变矫正)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们说过,很多时候传感器的数据并不能直接拿过来使用。这里面除了噪声的原因之外,另外一部分原因就是传感器数据本身也…

算法通关村第三关|青铜|线性表数组热身

1.线性表 1.1 线性表 线性表就是具有相同特征数据元素的一个有限序列。 1.2 数组存储元素的初始化 数组初始化时必须对从前向后的连续空间初始化,不可以出现空缺的情况。写 0 也是初始化,也要从前向后写。 2.热身-单调数组 判断是否为单调数组&am…

设置Ubuntu 20.04的静态IP地址(wifi模式下)

一、引言 自己家用的Ubuntu的,重启后ip地址经常会改变,这个时候就需要我们手动配置静态IP了。 二、优点 给Ubuntu设置一个静态IP地址有以下几个好处: 持久性:静态IP地址是固定不变的,与设备的MAC地址绑定。这意味着…

一、【Photoshop如何根据不同类型图像抠图】

文章目录 前言图形结构1、规则图形2、不规则图形 图形颜色1、轮廓清晰2、颜色分明 前言 当我们有抠图需求的时候,不要一开始就想着我怎么去把它抠出来,首先应该分析图形的特点,然后再去选取合适的工具,这样才可以做到事半功倍&am…

经典卷积神经网络 - NIN

网络中的网络,NIN。 AlexNet和VGG都是先由卷积层构成的模块充分抽取空间特征,再由全连接层构成的模块来输出分类结果。但是其中的全连接层的参数量过于巨大,因此NiN提出用1*1卷积代替全连接层,串联多个由卷积层和“全连接”层构成…

电脑定时关机

电脑定时关机 1.右键 管理 2. 3. 4. 5. shutdown.exe/s /f /t 06.点击完成就好了 7.这里面可以 看到定时任务和启动 右键有运行 结束 禁用