【Docker】Docker简介_运行原理

1、简介

1.1基本概念

  • 容器:容器是Docker的基本部署单元。它是一个轻量级的、独立的运行时环境,包含应用程序及其相关依赖。容器利用Linux内核的命名空间和控制组技术,实现了隔离性和资源管理,使得应用程序在不同的容器中运行不会相互影响。
  • 镜像:镜像是用于创建容器的模板。它包含了一个完整的文件系统,其中包括应用程序运行所需的所有文件、依赖和配置信息。镜像是不可变的,通过Docker镜像可以创建多个相同的容器实例。
  • 仓库:仓库是用于存储和分发Docker镜像的地方。最常用的公共镜像仓库是Docker Hub,上面有大量的官方和社区共享的镜像。此外,还可以搭建私有的镜像仓库,用于存放自己的镜像

1.2用途

  1. 提升开发效率:Docker可以快速搭建开发环境,节省大量时间。通过Docker,开发者可以轻易地让多个服务在有限的内存环境中运行。
  2. 构建环境:对于需要构建源码的场景,Docker可以提供一个预配置好的环境,省去了逐一安装软件的繁琐过程。
  3. 微服务:Docker支持微服务架构,可以将每个服务打包为一个Docker镜像并使用docker-compose来模拟生产环境。
  4. 自动测试:Docker可以与自动化测试紧密集成,通过镜像快速部署测试环境,提高测试效率。
  5. 部署过程:Docker镜像可以实现自我部署,降低硬件要求和应用环境之间的耦合度。
  6. 持续部署:Docker天生适合持续集成/持续部署,可以简化部署流程,加速应用发布。

1.3组成部分

  • DockerClient客户端:用于与Docker守护进程通信,提供用户与Docker的交互界面。
  • Docker Daemon守护进程:在宿主机上运行,接收来自DockerClient的请求,并管理Docker对象(如镜像、容器等)。
  • Docker Image镜像:如上所述,是创建容器的模板。
  • Docker Container容器:如上所述,是Docker的基本部署单元。

1.4Docker 架构

  • Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
  • Docker 容器通过 Docker 镜像来创建。
  • 容器与镜像的关系类似于面向对象编程中的对象与类。
Docker面向对象
容器 对象
镜像

2、运行原理

2.1Docker的运行流程

  1. 安装与配置:首先,用户需要在宿主机上安装Docker软件,并进行必要的配置,如设置Docker仓库源、安装Docker软件包等。
  2. 获取镜像:用户可以通过Docker Hub或其他Docker仓库获取所需的镜像。这些镜像可以是官方提供的,也可以是用户自己创建的。
  3. 创建容器:使用docker run命令,基于指定的镜像创建一个新的容器实例。Docker会加载镜像中的文件系统,并为容器分配所需的资源(如CPU、内存、网络等)。
  4. 运行容器:容器创建后,Docker会启动容器中的进程,并运行应用程序。容器与宿主机之间通过命名空间(Namespace)和控制组(Cgroup)技术实现隔离,确保容器内的进程不会干扰到宿主机或其他容器的运行。
  5. 管理容器:用户可以使用Docker命令(如docker startdocker stopdocker restart等)来管理容器的运行状态。同时,Docker还提供了丰富的API接口,允许用户通过编程方式管理容器。

2.2核心组件

  1. Docker Client:Docker客户端是用户与Docker守护进程通信的桥梁。用户通过Docker客户端发送请求给Docker守护进程,后者负责执行相应的操作。
  2. Docker Daemon(守护进程):Docker守护进程是Docker架构中的主体部分,它负责接收Docker客户端的请求,并管理Docker对象(如镜像、容器等)。Docker守护进程提供了Docker Server的功能,使其能够接受来自客户端的请求。
  3. Docker Engine:Docker引擎是Docker的核心组件之一,它包含了Docker守护进程、客户端工具(docker命令)和REST API。Docker引擎负责执行Docker内部的一系列工作,如创建容器、运行应用程序等。
  4. Docker Registry:Docker仓库是存储和分发Docker镜像的地方。用户可以从Docker仓库中下载所需的镜像,也可以将自己的镜像推送到仓库中供其他人使用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024 最新运营小工具 API 推荐,助力高效工作

在当今数字化运营的时代,各种高效便捷的 API 服务成为了企业和个人提升运营效率、获取精准数据的得力助手。无论是进行市场调研、拓展业务,还是优化网络资源配置,都离不开这些强大的工具。本文将为您详细介绍一系列实用的运营小工具 API 服务…

使用API有效率地管理Dynadot域名,为文件夹更名

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十八)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 28 节) P28《27.网络连接-Http请求数据》 案例: 这里不懂后端假设服务器的前端小伙伴就需要课程源码资料了…

华三交换机的软件版本升级操作

升级操作很常见,掌握方法是关键 实验环境:1台华三S6520-EI交换机,版本从2432P03升级成2432P05。 整体思路: 1.先查验软件版本 2.官网下载对于设备型号的软件版本 3.配置交换机地址使得与电脑进行通信,使用TFTP/FTP工…

宿主机无法通过ip连接wsl2解决方案

文章目录 原因排查网络模式win11防火墙关闭wsl ubuntu防火墙 如果之前能连接现在连接不上可以参考该方案 原因排查 网络模式win11防火墙(win11新增了Hyper-V防火墙)wsl2 ubuntu防火墙 网络模式 wsl2的默认网络模式是NAT&#xff0c;建议修改为镜像模式。在C:\Users\<User…

深圳,不止是“搞钱之都”

深圳又结结实实火了一把。 “建议深圳人吃饭不要谈工作”&#xff0c;这条微博话题热度飙升&#xff0c;超过五百多万人围观&#xff0c;引来无数网友吐槽“深圳人饭局的真实写照”。 从高档粤菜包间到路边小摊&#xff0c;从茶餐厅到烧烤摊&#xff0c;深圳人吃饭似乎总绕不…

Objects and Classes (对象和类)

Objects and Classes [对象和类] 1. Procedural and Object-Oriented Programming (过程性编程和面向对象编程)2. Abstraction and Classes (抽象和类)2.1. Classes in C (C 中的类)2.2. Implementing Class Member Functions (实现类成员函数)2.3. Using Classes References O…

华为---VRRP基本配置(一)

10、VRRP 10.1 VRRP基本配置 10.1.1 原理概述 随着Internet的发展&#xff0c;人们对网络可靠性的要求越来越高。对于用户来说&#xff0c;能够时刻与外部网络保持通信非常重要&#xff0c;但内部网络中的所有主机通常只能设置一个网关IP地址&#xff0c;通过该出口网关实现…

前端打包配置+nginx配置实现部署及部署地址带特定前缀的几种方式

前端打包后要部署到服务器&#xff0c;在浏览器中可以通过url访问到我们开发的系统&#xff0c;通过nginx代理在工作中是一种很常用的方式。 这里以本地为例&#xff0c;把本地电脑当作一个服务器&#xff0c;实现普通部署、带特定前缀等 前端使用vue-clivue作为例子 以下内容…

电脑突然提示dll文件丢失,怎么选择正确的恢复方法?

电脑突然提示dll文件丢失&#xff1f;其实当你的电脑使用久了&#xff0c;出现这种dll文件丢失是非常的正常的&#xff0c;毕竟你总会有不恰当的操作吧&#xff1f;这些操作都是会导致dll文件丢失的。丢失了&#xff0c;我们直接进行相关的修复就好了&#xff0c;还是比较简单的…

Qt开发 | Qt控件 | QTabWidget基本用法 | QListWidget应用详解 | QScrollArea应用详解

文章目录 一、QTabWidget基本用法二、QListWidget应用详解1.列表模式1.1 基本操作1.2 添加自定义item1.3 如何添加右键菜单1.4 QListWidget如何删除item 2.图标模式 三、QScrollArea应用详解 一、QTabWidget基本用法 QTabWidget 是 Qt 框架中的一个类&#xff0c;它提供了一个选…

C++学习/复习18----迭代器/反向迭代器及在list/vector中的应用、list与vector模拟实现复习

迭代器是一个对象&#xff0c;可以循环访问 C 标准库容器中的元素&#xff0c;并提供对各个元素的访问。 C 标准库容器全都提供迭代器&#xff0c;以便算法可以采用标准方式访问其元素&#xff0c;而不必考虑用于存储元素的容器类型。 一、反向迭代器类 基于普通迭代器构建反…

【Chapter8】文件系统,计算机操作系统教程,第四版,左万利,王英

文章目录 [toc]一、文件与文件系统1.1 文件1.2 文件系统 二、文件的访问方式2.1 顺序访问2.2 随机访问 三、文件的组织3.1 文件的逻辑组织3.2 文件的物理组织3.2.1 顺序结构3.2.2 链接结构3.2.3 索引结构3.2.4 Hash 结构3.2.5 倒排结构 3.3 UNIX文件物理结构&#xff08;索引链…

HarmonyOS Next开发学习手册——进程模型线程模型

进程模型 系统的进程模型如下图所示&#xff1a; 应用中&#xff08;同一包名&#xff09;的所有PageAbility、ServiceAbility、DataAbility、FormAbility运行在同一个独立进程中&#xff0c;即图中绿色部分的“Main Process”。 WebView拥有独立的渲染进程&#xff0c;即图中…

智能工厂中滑环应用的集成式和分立式数据接口解决方案

第四次工业革命通过在生产过程中实现新场景来推动数字化制造向前发展。这些场景依赖于基本的设计原则&#xff0c;包括器件互联、信息透明、技术协助&#xff0c;以及分散决策。没有先进的无线通信技术&#xff0c;就无法在现代智能工厂中实现所有这些原则。它们支持在广泛的领…

JM日志文件解析

研究意义 JM代码是对H264协议支持最全面的,不但还有编码还包括解码,通过它生成的trace文件可以对码流做一个很好的解读,目前很多码流分析工具也是基于JM的trace文件进行分析,研究它可以更深刻的理解H264协议。 环境搭建 先用cmake.exe 生成VS的工程文件 ●用VS 2019编译…

Modbus TCP什么场景用?

什么是Modbus TCP Modbus TCP是一种基于TCP/IP网络的通信协议&#xff0c;它允许不同的设备通过以太网进行数据交换。Modbus协议最初是为串行通信设计的&#xff0c;但随着网络技术的发展&#xff0c;Modbus TCP应运而生&#xff0c;它继承了Modbus RTU和Modbus ASCII的许多优点…

【分布式文件系统HDFS】文件操作基本命令的使用

目录 一、按照下述要求写出相应的文件操作命令&#xff0c;执行并观察结果 1. 新建目录 1.1 在本地文件系统按要求创建如下的文件夹 1.2 在HDFS文件系统按要求创建如下的文件夹 2. 编辑文件test1.txt&#xff0c;放入本地文件夹 /opt/user/myfile 3. 使用moveFromLocal命令…

沙盒在数据防泄密领域意义

在信息化快速发展的今天&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;数据泄密事件频发&#xff0c;给企业的安全和发展带来了巨大威胁。SDC沙盒防泄密系统&#xff0c;作为一种创新的数据防泄密解决方案&#xff0c;正逐渐在数据防泄密领域发挥着越来越重要的…

客户端输入网址后发生的全过程解析(协议交互、缓存、渲染)

目录 1. 输入 URL 并按下回车键2. DNS 解析3. TCP 连接4. 发送 HTTP 请求5. 服务器处理请求6. 发送 HTTP 响应7. 浏览器接收响应8. 渲染网页9. 执行脚本10. 处理其他资源11. TLS/SSL 加密&#xff08;如果使用 HTTPS&#xff09;握手过程 12. 协议协商和优化 总结 1. 输入 URL …