【Docker晋升记】No.1--- Docker工具核心组件构成(镜像、容器、仓库)及性能属性
文章目录
- 前言
- 🌟一、Docker工具
- 🌟二、Docker 引擎
- 🌏2.1.容器管理:
- 🌏2.2.镜像管理:
- 🌏2.3.资源管理:
- 🌏2.4.网络管理:
- 🌏2.5.存储管理:
- 🌏2.6.总结:
- 🌟三、Docker 镜像
- 🌏3.1. 镜像的特点
- 🌏3.2. 镜像的流程
- 🌟四、Docker 容器
- 🌏4.1. Docker 容器的一些特点
- 🌏4.2. 使用 Docker 容器的流程
- 🌟五、Docker 仓库
- 🌏5.1. Docker 仓库的一些重要概念和特点:
- 🌏5.2. 常见的 Docker 仓库软件:
- 🌟六、Docker 工具性能
- 🌏6.1. 优势:
- 🌏6.1. 注意事项:
- 总结
前言

👧个人主页:@小沈YO.
😚小编介绍:欢迎来到我的乱七八糟小星球🌝
🔑本章内容:Docker工具核心组件构成(镜像、容器、仓库)及性能属性
记得 评论📝 +点赞👍 +收藏😽 +关注💞哦~
提示:以下是本篇文章正文内容,下面案例可供参考
🌟一、Docker工具
Docker 是一个开放源代码的容器化平台,它使开发者能够打包、分发和运行应用程序及其依赖项。Docker 工具主要由以下几个组件构成:
- Docker 引擎(Docker Engine):Docker 引擎是 Docker 的核心组件,负责构建和运行容器。它使用容器镜像来创建容器,提供了一套 API 和命令行接口,允许用户管理容器的生命周期、网络和存储等方面的配置。
- Docker 镜像(Docker Images):Docker 镜像是用于创建 Docker 容器的只读模板。镜像包含了运行应用程序所需的一切,包括操作系统、应用程序代码、运行时环境、库文件等。用户可以从现有的镜像构建新的镜像,也可以通过 Dockerfile 定义自己的镜像。
- Docker 容器(Docker Containers):Docker 容器是 Docker 镜像的实例化对象,是一个独立运行的应用程序环境。容器可以被创建、启动、停止、删除等操作,它隔离了应用程序及其依赖项,使其可以在不同的环境中以一致的方式运行。
- Docker 仓库(Docker Hub):Docker 仓库是一个集中存储和分享 Docker 镜像的平台。Docker Hub 是公共的 Docker 仓库,用户可以从中获取现有的镜像,也可以将自己构建的镜像上传到仓库分享给他人。

🌟二、Docker 引擎
Docker 引擎(Docker Engine)是 Docker 的核心组件,负责构建和运行容器。它是一个轻量级的容器运行时环境,提供了一套 API 和命令行接口,用于管理容器的生命周期、网络和存储等配置。
Docker 引擎使用了一种称为 Linux 容器(Linux Containers,LXC)的技术来实现容器化。它利用 Linux 内核的功能,如命名空间(namespace)和控制组(cgroup),来隔离容器的进程、文件系统、网络和资源使用。
🌏2.1.容器管理:
Docker 引擎可以创建、启动、停止和删除容器。它允许用户指定容器的配置,如映射主机端口到容器端口、挂载主机目录到容器内部等。
🌏2.2.镜像管理:
Docker 引擎可以从 Docker 镜像创建容器。它可以从 Docker Hub 或其他 Docker 仓库拉取现有的镜像,也可以通过 Dockerfile 构建新的镜像。
🌏2.3.资源管理:
Docker 引擎使用控制组来限制和管理容器对计算资源(如 CPU 和内存)的使用。它可以设置容器的资源限制和优先级,以确保不同容器之间的资源隔离和公平共享。
🌏2.4.网络管理:
Docker 引擎提供了一组网络驱动程序,用于创建和管理容器的网络。它可以为容器分配 IP 地址,定义容器间的网络连接关系,以及与主机网络进行通信。
🌏2.5.存储管理:
Docker 引擎支持多种存储驱动程序,用于管理容器的文件系统和持久化数据。它可以将主机文件系统挂载到容器内部,也可以创建匿名卷和命名卷来存储容器的数据。
🌏2.6.总结:
通过 Docker 引擎,开发者可以轻松地构建、部署和管理容器化的应用程序。它提供了统一的接口和工具,使得应用程序在不同的环境中以一致的方式运行,具备了可移植性和可复制性的优势。
🌟三、Docker 镜像
Docker 镜像(Docker Images)是用于创建 Docker 容器的只读模板。镜像包含了运行应用程序所需的一切,包括操作系统、应用程序代码、运行时环境和库文件等。
🌏3.1. 镜像的特点
- 只读性:Docker 镜像是只读的,即镜像的内容在创建后不可更改。这意味着镜像本身是不可变的,任何对容器的修改都会在容器运行时创建新的可写层(writeable layer)。
- 分层结构:Docker 镜像采用分层结构,每一层都是前一层的基础。这样的结构使得镜像的复用和共享变得更加高效,因为不同的镜像可以共享相同的基础层。
- 版本控制:Docker 镜像可以同时存在多个版本,每个版本都有唯一的标识符(例如镜像 ID 或标签),可以根据需要选择特定的版本进行使用。
🌏3.2. 镜像的流程
- 获取镜像:可以从 Docker Hub 或其他 Docker 仓库获取现有的镜像。Docker Hub 是一个公共的 Docker 镜像仓库,用户可以在其中搜索、下载和共享镜像。
- 构建镜像:通过使用 Dockerfile 来定义自己的镜像。Dockerfile 是一个文本文件,其中包含了一系列的指令,用于指定从基础镜像开始,通过逐步的操作构建出一个新的镜像。
- 运行容器:通过 Docker 镜像创建容器,并将容器启动起来运行。一个镜像可以创建多个容器,并且每个容器都是相互独立的运行实例。
- 分享镜像:可以将自己构建的镜像上传到 Docker Hub 或其他 Docker 仓库,与他人共享使用。
通过使用 Docker 镜像,开发者可以快速构建、交付和运行应用程序及其依赖项。镜像的可复用性和轻量级特性使得应用程序在不同的环境中可以快速、可靠地部署和扩展。
🌟四、Docker 容器
Docker 容器(Docker Containers)是 Docker 镜像的实例化对象,是一个独立运行的应用程序环境。容器提供了应用程序运行所需的所有资源,包括文件系统、运行时环境、应用程序代码和依赖项等.
🌏4.1. Docker 容器的一些特点
- 轻量级:Docker 容器是轻量级的,因为它们与宿主机共享操作系统内核和底层资源。与虚拟机相比,容器仅包含应用程序及其运行时环境,不需要额外的操作系统。
- 隔离性:容器提供了一定程度的隔离,使得应用程序在容器中运行时相互隔离、互不干扰。每个容器都有自己的文件系统、网络空间和进程空间,使得容器间的应用程序能够独立运行。
- 可移植性:Docker 容器可以在不同的环境中运行,无论是开发者的本地机器、测试环境还是生产环境。容器提供了一致的运行时环境,使得应用程序的部署和迁移变得更加简单和可靠。
- 可扩展性:可以复制和扩展容器,以满足应用程序的需求。多个容器可以在同一主机上运行,并可以在集群中分布在多台主机上,以实现高可用性和负载均衡。
🌏4.2. 使用 Docker 容器的流程
- 定义镜像:使用 Dockerfile 定义 Docker 镜像,其中包含构建容器所需的指令和配置。
- 构建镜像:通过运行构建命令(如 docker build)根据 Dockerfile 构建出镜像。
- 创建容器:通过 Docker 镜像创建容器实例,可以指定容器的名称、端口映射、挂载点等配置。
- 启动容器:使用启动命令(如 docker run)来启动容器,并让应用程序在容器中运行。
- 操作容器:可以通过 Docker 命令来管理容器的生命周期,如暂停、继续、停止或删除容器。
- 监控容器:使用 Docker 监控工具和命令可以获取容器的运行状态、日志和资源使用情况。
通过 Docker 容器,开发者可以实现应用程序的快速部署、可重复运行,并且能够更好地利用计算资源。容器化技术带来的轻量级、可移植和隔离的特性使得应用开发、测试和部署过程更加高效和可靠。
🌟五、Docker 仓库
Docker 仓库(Docker Registry)是一个集中存储和管理 Docker 镜像的服务。它允许用户上传、下载、管理和共享 Docker 镜像,是 Docker 生态系统中重要的组成部分。
🌏5.1. Docker 仓库的一些重要概念和特点:
- Docker 官方仓库:Docker 官方提供了一个公共的 Docker 仓库,称为 Docker Hub。在 Docker Hub 上,用户可以找到大量的公共镜像,可以通过简单的命令从 Docker Hub 上下载镜像到本地,并使用这些镜像来创建容器。
- 私有仓库:除了 Docker Hub,用户还可以搭建私有的 Docker 仓库,用于存储和管理自己的镜像。私有仓库可以在内部网络中共享和使用,也可以选择将其暴露给外部网络,以便团队成员或合作伙伴进行访问。
- 镜像版本控制:Docker 仓库支持对镜像进行版本控制。每个镜像都有一个唯一的标签,用于标识特定的版本。通过指定镜像的标签,可以确保在不同环境中使用相同的镜像版本。
- 仓库命名空间:在 Docker 仓库中,镜像资源按照命名空间进行组织和管理。命名空间类似于一个顶级文件夹,用于区分不同组织或个人的镜像。例如,对于 Docker Hub,许多官方镜像的命名空间是 “library”,用户可以创建自己的命名空间来存储自定义镜像。
- 安全和权限控制:Docker 仓库通常提供安全机制和权限控制,以确保镜像的安全性和访问的限制。可以设置访问控制规则,仅允许授权用户或团队上传和下载镜像。此外,可以对镜像进行签名和验证,确保镜像的完整性和来源可信。
🌏5.2. 常见的 Docker 仓库软件:
常见的 Docker 仓库软件包括 Docker Trusted Registry、Harbor、JFrog Artifactory 等。使用这些软件,用户可以自己搭建和管理私有的 Docker 仓库,并根据自己的需求进行配置和扩展。
总之,Docker 仓库是 Docker 镜像的集中存储和管理服务,提供了公共和私有的镜像资源,并支持版本控制、权限控制和安全机制,使得 Docker 镜像的共享和使用变得更加便捷和可靠。
🌟六、Docker 工具性能
Docker 是一个轻量级的容器化平台,它提供了一种可移植、可扩展和高性能的方式来打包、部署和运行应用程序。下面是 Docker 的一些性能特点和考虑因素:
🌏6.1. 优势:
- 轻量级和快速启动:Docker 容器是基于操作系统级虚拟化技术实现的,相比于传统的虚拟机,容器更轻量级且启动更快。容器可以在几秒钟内启动,并且不需要额外的操作系统启动时间。
- 资源利用效率:Docker 容器共享宿主操作系统的内核,这意味着多个容器可以在同一台主机上运行,而不会对性能造成显著影响。容器使用的资源(如内存、CPU、网络带宽等)可以进行有效的分配和管理,确保资源的最佳利用。
- 高度可扩展:Docker 提供了强大的可扩展性,可以在需要时快速复制和部署多个实例。使用容器编排工具如 Docker Swarm 或 Kubernetes,可以轻松管理大规模的容器集群,并根据负载情况进行动态扩展和自动负载均衡。
- 隔离性:Docker 容器提供了良好的隔离性,每个容器都运行在独立的运行时环境中,相互之间不会相互干扰。这种隔离性使得容器可以提供更高的安全性和稳定性,同时也减少了因其他容器故障而影响整个应用程序的风险。
- 易于部署和管理:使用 Docker 镜像,可以极大地简化应用程序的部署和管理过程。开发人员可以将应用程序及其依赖打包为镜像,然后在不同环境中轻松进行部署。同时,使用容器编排工具可以自动化地管理容器的生命周期,包括部署、伸缩、监控和更新等。
🌏6.1. 注意事项:
- 存储性能:读写容器的数据可以引入一些性能开销,特别是在使用基于容器的持久化存储(如数据卷)时。在设计应用程序架构时,需要选择适当的存储策略,并优化数据访问模式,以避免性能瓶颈。
- 网络性能:容器之间的通信可能需要经过网络层,对于高吞吐量和低延迟的应用程序,需要考虑网络性能的影响。可以使用容器网络模式和网络驱动程序进行优化,以满足应用程序的需求。
- 宿主机资源限制:容器共享宿主机的资源,如果宿主机资源不足,可能导致容器性能下降。在设计容器部署架构时,需要考虑宿主机的资源配额、容器的资源需求以及宿主机的负载情况。
总结而言,Docker 提供了高性能、可移植和可扩展的容器化解决方案。通过合理的架构设计和优化配置,可以充分发挥 Docker 的性能优势,并满足应用程序的需求。
总结
除了以上核心组件,Docker 还有其他一些常用的工具,例如:
- Docker Compose:Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,它使用一个 YAML 文件来配置多个容器之间的关系和参数。
- Docker Swarm:Docker Swarm 是 Docker 提供的原生集群管理工具,可以在多个Docker 主机上创建和管理容器集群,提供高可用性和伸缩性。
- Kubernetes(K8s):Kubernetes 是一个开源的容器编排和管理平台,能够自动化运行、扩展和管理容器化应用程序。Docker 可以与 Kubernetes 集成,提供容器化应用程序的部署和管理功能。
- Docker Machine:Docker Machine 可以在多种不同的主机上安装和运行 Docker 引擎,简化了在各种平台上使用 Docker 的过程。
这些工具组成了 Docker 生态系统,使得开发者可以更轻松地构建、交付和管理应用程序及其依赖项,实现了应用程序的可移植性和可复制性。
相关文章:
【Docker晋升记】No.1--- Docker工具核心组件构成(镜像、容器、仓库)及性能属性
文章目录 前言🌟一、Docker工具🌟二、Docker 引擎🌏2.1.容器管理:🌏2.2.镜像管理:🌏2.3.资源管理:🌏2.4.网络管理:🌏2.5.存储管理:&am…...
ROBOGUIDE教程:FANUC机器人X型焊枪气动点焊焊接
目录 概述 机器人系统创建 X型点焊焊枪安装与配置 机器人组输出(GO)信号配置 气动点焊初始设置 点焊设备设置 点焊设备I/O信号设置 焊接控制器I/O信号设置 X型点焊焊枪运动控制配置 气动焊枪手动运行操作 气动点焊焊接指令介绍 机器人点焊焊接程序编写 机器人仿…...
二、 根据用户行为数据创建ALS模型并召回商品
二 根据用户行为数据创建ALS模型并召回商品 2.0 用户行为数据拆分 方便练习可以对数据做拆分处理 pandas的数据分批读取 chunk 厚厚的一块 相当大的数量或部分 import pandas as pd reader pd.read_csv(behavior_log.csv,chunksize100,iteratorTrue) count 0; for chunk in …...
[golang gin框架] 45.Gin商城项目-微服务实战之后台Rbac微服务之角色权限关联
角色和权限的关联关系在前面文章中有讲解,见[golang gin框架] 14.Gin 商城项目-RBAC管理之角色和权限关联,角色授权,在这里通过微服务来实现角色对权限的授权操作,这里要实现的有两个功能,一个是进入授权,另一个是,授权提交操作,页面如下: 一.实现后台权限管理Rbac之角色权限关…...
Redis中的数据类型
Redis中的数据类型 Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型: 字符串string哈希hash列表list集合set有序集合sorted set...
java spring cloud 企业工程管理系统源码+二次开发+定制化服务 em
Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显…...
Java程序猿搬砖笔记(十五)
文章目录 在Java中将类作为参数传递(泛型)IDEA快捷键:查看该方法调用了哪些方法、被哪些方法调用快捷键:ctrlalth IDEA快捷键:快速从controller跳转到serviceImplIDEA快捷键:实现接口的方法IDEA 快捷键:快速包裹代码ID…...
flask----内置信号的使用/django的信号/ flask-script/sqlalchemy介绍和快速使用/sqlalchemy介绍和快速使用
信号 内置信号的使用 # 第一步:写一个函数 def test(app, **kwargs):print(app)print(type(kwargs))# 请求地址是根路径,才记录日志,其它都不记录print(kwargs[context][request].path)if kwargs[context][request].path /:print(记录日志…...
Zookeeper 面试题
一、ZooKeeper 基础题 1.1、Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机…...
ELK 企业级日志分析系统(二)
目录 ELK Kiabana 部署(在 Node1 节点上操作) 1.安装 Kiabana 2.设置 Kibana 的主配置文件 3.启动 Kibana 服务 4.验证 Kibana 5.将 Apache 服务器的日志(访问的、错误的&#x…...
Linux版本 centOS 7,java连接mysql
在Linux下 使用java 访问数据库 , java 1.7版本, mysql 8.0.33版本, 连接驱动 mysql-connector-java-5.1.49.jar 代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import ja…...
开发工具IDEA的下载与初步使用【各种快捷键的设置,使你的开发事半功倍】
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于IDEA的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.IDEA的简介以及优势 二.IDEA的下载 1.下…...
YoloV5/YoloV7优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列
💡💡💡本文改进:感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 RFAConv| 亲测在多个数据集能够实现大幅涨点,有的数据集达到3个点以上 💡💡💡Yolov5/Yolov7魔术师…...
freeswitch的mod_xml_curl模块动态获取configuration
概述 freeswitch是一款简单好用的VOIP开源软交换平台。 mod_xml_curl模块支持从web服务获取xml配置,本文介绍如何动态获取acl配置。 环境 centos:CentOS release 7.0 (Final)或以上版本 freeswitch:v1.6.20 GCC:4.8.5 web…...
CANdelaStudio 使用介绍
CANdela Studio使用_哔哩哔哩_bilibili 一.CANdelaStudio使用tips 1.开始菜单打开软件,避免软件字体是德文的 2.打开软件之后,用“Open”打开.cdd或者.cddt文件,不要双击文件打开,这样容易报错 3.查看软件版本信息 4.只有Admin版…...
锚框【动手学深度学习】
生成多个锚框 假设输入图像高为h,宽为w,我们以图像每个像素为中心生成不同形状的锚框,缩放比 s∈(0,1],宽高比为r>0。那么锚框的宽度和高度分别为和。当中心位置给定时, 已知宽和高的锚框是确定的。缩放比为锚框高与图像高的比值,然后得到一个正方形锚框面积。 …...
Qt扫盲-Qt Model/View 理论总结 [上篇]
Qt Model/View 理论总结 [上篇] 一、概述1.model / view 架构2. Model3. View4. Delegate5. 排序6. 快捷类 二、使用model/view1. Qt包含两种 model2. 在现有 model 中使用 view 三、Model 类1. 基本概念1.model 索引2. 行和列2. item 的父 item3. Item roles4. 总结 2. 使用mo…...
【猿灰灰赠书活动 - 01期】- 【Python网络爬虫入门到实战】
说明:博文为大家争取福利,与机械工业出版社合作进行送书活动 图书:《Python网络爬虫入门到实战》 一、好书推荐 图书介绍 本书介绍了Python3网络爬虫的常见技术。首先介绍了网页的基础知识,然后介绍了urllib、Requests请求库以及X…...
小兔鲜项目 uniapp (1)
目录 项目架构 uni-app小兔鲜儿电商项目架构 小兔鲜儿电商课程安排 创建uni-app项目 1.通过HBuilderX创建 2.通过命令行创建 pages.json和tabBar案例 uni-app和原生小程序开发区别 用VS Code开发uni-app项目 拉取小兔鲜儿项目模板代码 基础架构–引入uni-ui组件库 操…...
盛弘电气2021秋招笔试题
笔试时间:2020.09.16,60分钟 宣讲会后直接笔试,若通过会有两轮面试,7-15 天出结果。 题型:简答题8道,每题5分,共40分。编程题4道,每题15分,共60分。 公司介绍:公司现阶段主要产品为充电桩,专注于电力电子技术控制电能,交直流变换。 薪资待遇:本科8-15K,研究生…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
