首页 > 其他分享 >测试技能提升篇——Docker的核心概念

测试技能提升篇——Docker的核心概念

时间:2023-09-27 10:32:30浏览次数:33  
标签:容器 虚拟机 测试 镜像 Docker 客户端 服务端 技能


测试技能提升篇——Docker的核心概念_Docker

Docker已经不是什么新技术了,相信绝大多数同学在实际工作中都会对其有一定的了解,使用一些常用的命令行执行一些操控容器的基础操作,这方便的网络资源实现太多了,在这里就不进行相关讲解了。本文重点介绍一下涉及Docker的相关概念以及其核心组件的作用,相信会帮助想要深入研究Docker的同学有很大的帮助!

Docker

是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker容器和虚拟机

测试技能提升篇——Docker的核心概念_容器_02

虚拟机是通过管理系统(Hypervisor)模拟出 CPU、内存、网络等硬件,然后在这些模拟的硬件上创建客户内核和操作系统。这样做的好处就是虚拟机有自己的内核和操作系统,并且硬件都是通过虚拟机管理系统模拟出来的,用户程序无法直接使用到主机的操作系统和硬件资源,因此虚拟机也对隔离性和安全性有着更好的保证。而 Docker 容器则是通过 Linux 内核的 Namespace 技术实现了文件系统、进程、设备以及网络的隔离,然后再通过 Cgroups 对 CPU、 内存等资源进行限制,最终实现了容器之间相互不受影响,Namespace和Cgroups是实现docker的核心技术。

容器与虚拟机相比最大的优点是:容器的性能损耗非常小,并且镜像也非常小,而且在业务快速开发和迭代的今天,容器秒级的启动等特性也非常匹配业务快速迭代的业务场景

镜像

它是一个只读的文件和文件夹组合。它包含了容器运行时所需要的所有基础文件和配置信息,是容器启动的基础。所以你想启动一个容器,那首先必须要有一个镜像。镜像是 Docker 容器启动的先决条件。我们可以自己创建镜像。也可以从功能镜像仓库拉取别人制作好的镜像。一些常用的软件或者系统都会有官方已经制作好的镜像,例如nginx、centos、mysql等,我们可以到 Docker Hub(https://hub.docker.com/,也可以使用阿里云等国内镜像)搜索并下载它们。

镜像仓库

Docker 的镜像仓库类似于代码仓库,用来存储和分发 Docker 镜像。

容器

容器是 Docker 的另一个核心概念。容器是镜像的运行实体。镜像是静态的只读文件,而容器带有运行时需要的可写文件层,并且容器中的进程属于运行状态。即容器运行着真正的应用进程。容器有初建、运行、停止、暂停和删除五种状态。虽然容器的本质是主机上运行的一个进程,但是容器有自己独立的命名空间隔离和资源限制。也就是说,在容器内部,无法看到主机上的进程、环境变量、网络等信息,这是容器与直接运行在主机上的进程的本质区别。

镜像、镜像仓库和容器的关系

测试技能提升篇——Docker的核心概念_容器_03

Docker 的组件构成

Docker 整体架构采用 C/S(客户端 / 服务器)模式,主要由客户端和服务端两大部分组成。

测试技能提升篇——Docker的核心概念_运维_04

Docker 客户端

Docker 客户端其实是一种泛称。其中 docker 命令是 Docker 用户与 Docker 服务端交互的主要方式。除了使用 docker 命令的方式,还可以使用直接请求 REST API 的方式与 Docker 服务端交互,甚至还可以使用各种语言的 SDK 与 Docker 服务端交互。目前社区维护着 Go、Java、Python、PHP 等数十种语言的 SDK,足以满足你的日常需求。

Docker 服务端

Docker 服务端是 Docker 所有后台服务的统称。其中 dockerd 是一个非常重要的后台管理进程,它负责响应和处理来自 Docker 客户端的请求,然后将客户端的请求转化为 Docker 的具体操作。例如镜像、容器、网络和挂载卷等具体对象的操作和管理。

Docker其他组件总结

测试技能提升篇——Docker的核心概念_服务端_05

标签:容器,虚拟机,测试,镜像,Docker,客户端,服务端,技能
From: https://blog.51cto.com/liwen629/7621239

相关文章

  • 测试技能提升篇——脏读、不可重复读、幻读的区别
     脏读事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据不可重复读事务A多次读取同一数据,事务B在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果不一致。脏读与不可重复读的区别在于前者读到的是其他事务未提交的数据,后者读到的......
  • MongoDB 解析:灵活文档数据库与 Docker Compose 部署
    MongoDB是一款开源、高性能的NoSQL数据库,以其无模式的文档存储格式(BSON)而著称,广泛应用于众多开源项目,包括但不限于Yapi等。它在大规模数据存储和实时数据处理方面表现出色,因此备受青睐。在本文中,我们将深入探讨MongoDB的特性,并详细阐述如何使用DockerCompose轻松部署Mon......
  • 【Docker】使用 Docker 启动 mysql,配置挂载数据文件夹与配置文件
    #1:先创建挂载文件夹mkdir-p/mysql/config;mkdir-p/mysql/data;mkdir-p/mysql/logs#2:创建配置文件vim/mysql/config/my.cnf#3:修改权限chmod777/mysql/config/my.cnf#4:添加以下参数#event_scheduler=ON表示开启事件支持#lower_case_tabl......
  • 无限的技能
    无限的技能一、详情如果心中有目标,就能立即将新学到的技能付诸应用,课程开始正是草拟目标的大好时机。将想法记录下来是学习的好习惯,这样每当需要开始新项目时(大创,竞赛,毕业设计等)都可参考它们。如果你有无穷多种编程技能,密码技术,硬件设计技术,你打算开发什么样的密码系统或密码应......
  • drf 测试(车型、车场、经销商)
    一、实现要求1有车型(CarModel),车厂(CarFactory),经销商(Distributor)三个表,一个车厂可以生产多种车型,一个经销商可以出售多种车型,一个车型可以有多个经销商出售车型:车型名,车型出厂价,车厂id车厂:车厂名,车厂地址,联系电话经销商:经销商名,地址,联系电话2有用户表,基于django内......
  • 1-docker安装
    1.文档https://docs.docker.com/engine/install/centos/https://docs.docker.com/engine/install/linux-postinstall/2.卸载旧版yumremove-ydocker\docker-ce-cli\docker-client\docker-client-latest\doc......
  • 2-docker之daemon
    参考文档https://docs.docker.com/config/daemon/1.docker.20docker版本20以后graph修改成data-root{"api-cors-header":"",在引擎API中设置CORS标头"authorization-plugins":[],要加载的授权插件"bridge":"",将容器附加到网桥"cgroup-p......
  • 本地测试Spark的svm算法
    上一篇介绍了逻辑回归算法,发现分类效果不好,通过这次的svm发现是因为训练数据不行,于是网上找了部分训练数据,发现实际上分类效果还可以。    训练数据,第一个值是标签,下面的数据是某种花的相关特征。1|5.1,3.5,1.4,0.21|4.9,3,1.4,0.21|4.7,3.2,1.3,0.21|4.6,3.1,1.5,0.21......
  • 2-docker之daemon
    参考文档https://docs.docker.com/config/daemon/1.docker.20docker版本20以后graph修改成data-root{"api-cors-header":"",在引擎API中设置CORS标头"authorization-plugins":[],要加载的授权插件"bridge":"",将容器附加到网桥"cgrou......
  • docker-compose安装Redis
    一、单机版本1、docker-composeversion:'3'services:redis:image:redis:5.0restart:alwaysprivileged:truecontainer_name:redis-javaports:-6379:6379volumes:-/var/docker/server/redis/redis.conf:/etc/redis......