Docker:Docker从入门到精通(一)- Docker简介
一、前言
通过本专栏的学习,我们将了解
1. 掌握Docker基础知识,能够理解Docker镜像与容器的概念
2. 完成Docker安装与启动
3. 掌握Docker镜像与容器相关命令
4. 掌握Tomcat Nginx 等软件的常用应用的安装
5. 掌握docker迁移与备份相关命令
6. 能够运用Dockerfile编写创建容器的脚本
7. 能够搭建与使用docker私有仓库
二、Docker简介
Docker官网 https://www.docker.com/
1. 认识虚拟化
虚拟化就是将计算机的物理资源抽象成逻辑资源,让一台计算机变成几台甚至上百台相互隔离的虚拟计算机,或者让网络节点不受物理位置的限制而自由分配资源的技术。虚拟化技术允许用户通过软件来模拟硬件资源,从而实现资源的灵活分配和高效利用。
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用。
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。
2. Docker介绍
Docker是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低。Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和部署。使得Docker技术比传统的虚拟化技术更为轻便、快捷。
2.1 Docker的核心组件:
Docker引擎(Docker Engine):Docker的核心组件,负责创建和管理容器。它提供了API来执行容器生命周期管理(如创建、运行、停止、删除容器)以及容器镜像管理(如拉取、构建、存储、上传镜像)等任务。
Docker客户端(Docker Client):用户通过Docker客户端与Docker引擎进行交互,执行Docker命令。客户端可以是命令行界面(CLI)或图形用户界面(GUI)。
Docker镜像(Docker Images):Docker镜像是一个轻量级、可执行的独立软件包,包含了运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。Docker使用镜像来创建容器。
Docker容器(Docker Containers):容器是镜像的运行实例。你可以使用Docker API或CLI来运行、停止、移动或删除容器。容器是完全使用沙箱机制,相互之间不会有任何接口,确保了应用程序的隔离性和安全性。
Docker仓库(Docker Registries):Docker仓库用于存储和分发Docker镜像。Docker Hub是Docker的官方公共仓库,但你也可以使用私有仓库来存储和管理自己的镜像。
2.2 Docker的主要优势:
简化配置:Docker通过容器化技术简化了应用程序的配置和部署过程。
代码与环境的一致性:Docker容器确保了应用程序在不同环境中的代码和环境一致性。
提高开发效率:开发者可以在本地使用Docker容器来模拟生产环境,从而更快地开发和测试应用程序。
提高资源利用率:Docker容器比传统的虚拟机更轻量级,因此可以更有效地利用系统资源。
便于迁移和扩展:Docker容器可以轻松地从一个环境迁移到另一个环境,并支持水平扩展,以应对高并发和高负载的情况。
3. 容器与虚拟机比较
1. 轻量级与资源消耗:
容器:轻量级,共享主机操作系统内核,因此启动更快,资源消耗更少。例如,Docker容器可以迅速启动,并且每个容器仅占用少量的系统资源。
虚拟机:相对较重,每个虚拟机都有自己的操作系统和应用程序,因此需要更多的资源,包括内存、存储和CPU。虚拟机的启动时间也通常较长。
2. 隔离性:
容器:提供进程级别的隔离,容器之间的隔离性相对较弱。尽管如此,容器通过命名空间(namespaces)和控制组(cgroups)等技术实现了一定程度的资源隔离。
虚拟机:提供硬件级别的隔离,每个虚拟机都有自己独立的操作系统和内核,因此隔离性更强。虚拟机之间的交互受到严格的限制,确保了更高的安全性。
3. 可移植性:
容器:由于容器共享主机操作系统内核,因此容器镜像在不同操作系统之间的可移植性更高。容器可以在任何支持容器运行时的环境中运行,无论是本地开发环境还是云端生产环境。
虚拟机:虚拟机镜像通常包含完整的操作系统和应用程序,因此其可移植性受到操作系统兼容性的限制。虚拟机可以在几乎所有操作系统上运行,但可能需要额外的配置和调整。
4. 安全性:
容器:容器共享主机操作系统内核,因此如果主机操作系统存在漏洞,容器可能受到威胁。然而,通过安全配置和最佳实践,可以降低这种风险。
虚拟机:由于虚拟机提供了更强的隔离性,因此通常更安全。虚拟机之间的隔离性更好,减少了潜在的安全风险。
5. 资源利用率:
容器:由于容器共享操作系统内核,因此可以在同一台主机上运行多个容器,从而提高了资源利用率。
虚拟机:每个虚拟机都需要独立的操作系统和应用程序,因此资源利用率相对较低。然而,在某些情况下,虚拟机可以提供更好的性能和稳定性。
6. 管理复杂性:
容器:通常更容易管理,因为它们可以轻松扩展和更新。容器编排工具(如Kubernetes)可以进一步简化容器的管理和部署。
虚拟机:管理可能需要更多的手动干预和专业知识。然而,虚拟机管理工具(如VMware vCenter)可以帮助简化虚拟机的管理和维护。
相关文章:

Docker:Docker从入门到精通(一)- Docker简介
一、前言 通过本专栏的学习,我们将了解 1. 掌握Docker基础知识,能够理解Docker镜像与容器的概念 2. 完成Docker安装与启动 3. 掌握Docker镜像与容器相关命令 4. 掌握Tomcat Nginx 等软件的常用应用的安装 5. 掌握docker迁移与备份相…...

【复习】Redis
数据结构 Redis常见的数据结构 String:缓存对象Hash:缓存对象、购物车List:消息队列Set:点赞、共同关注ZSet:排序 Zset底层? Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…...
在Spring Boot+Vue前后端分离的项目中使用JWT实现基本的权限校验
说明 在 Spring Boot + Vue 前后端分离的项目中,如果不使用第三方服务(如 Spring Security、Shiro 等),可以通过自定义实现基本的权限校验。 使用JWT实现步骤 以下是实现步骤: 1. 设计权限模型 通常权限模型包括: 用户(User):系统的使用者。角色(Role):用户的权…...

蓝桥杯单片机组第十二届省赛第二批次
前言 第十二届省赛涉及知识点:NE555频率数据读取,NE555频率转换周期,PCF8591同时测量光敏电阻和电位器的电压、按键长短按判断。 本试题涉及模块较少,题目不难,基本上准备充分的都能完整的实现每一个功能,并…...
伪404兼容huawei生效显示404
根据上述思考,以下是详细的中文分步说明: --- **步骤 1:获取目标设备的User-Agent信息** 首先,我们需要收集目标设备的User-Agent字符串,包括: 1. **iPhone设备的User-Agent**: Mozi…...
UIAutomation开发常用方法的参考文档
简介 由于UIAutomation的官方文档只有一个github中的readme文件,只是简单的使用示例,具体使用还需要在代码中查找,非常不方便。经过我多年使用UIAutomation开发的经验和整理,把常用的功能梳理成本文档,作为我的开发参考使用,这样就不用每次都翻代码了,同时也可以使用AI…...

数据库面试题(基础常考!!!)
在数据库领域,无论是日常开发还是面试场景,都有一些高频且重要的问题需要我们深入理解和掌握。本文将对这些常见面试题进行详细阐述,帮助大家更好地应对面试和实际工作中的挑战。 面试题一:三范式详解 什么是三范式 三范式是关…...

ASP.NET Core Clean Architecture
文章目录 项目地址一、项目主体1. CQRS1.1 Repository数据库接口1.2 GetEventDetail 完整的Query流程1.3 创建CreateEventCommand并使用validation 2. EFcore层2.1 BaseRepository2.2 CategoryRepository2.3 OrderRepository 3. Email/Excel导出3.1 Email1. IEmail接口层2. Ema…...
蓝桥杯备赛-精卫填海-DP
精卫终于快把东海填平了!只剩下了最后的一小片区域了。同时,西山上的木石也已经不多了。精卫能把东海填平吗? 事实上,东海未填平的区域还需要至少体积为 v 的木石才可以填平,而西山上的木石还剩下 n 块,每块…...

Windows10配置C++版本的Kafka,并进行发布和订阅测试
配置的环境为:Release x64下的环境 完整项目:https://gitee.com/jiajingong/kafka-publisher 1、首先下载相应的库文件(.lib,.dll) 参考链接: GitHub - eStreamSoftware/delphi-kafka GitHub - cloade…...
vue3 下载文件 responseType-blob 或者 a标签
在 Vue 3 中,你可以使用 axios 或 fetch 来下载文件,并将 responseType 设置为 blob 以处理二进制数据。以下是一个使用 axios 的示例: 使用 axios 下载文件 首先,确保你已经安装了 axios: npm install axios然后在你…...

【Gin-Web】Bluebell社区项目梳理6:限流策略-漏桶与令牌桶
本文目录 一、限流二、漏桶三、令牌桶算法四、Gin框架中实现令牌桶限流 一、限流 限流又称为流量控制,也就是流控,通常是指限制到达系统的并发请求数。 限流虽然会影响部分用户的使用体验,但是能一定程度上保证系统的稳定性,不至…...

51单片机-AT24CXX存储器工作原理
1、AT24CXX存储器工作原理 1.1、特点: 与400KHz,I2C总线兼容1.8到6.0伏工作电压范围低功耗CMOS技术写保护功能当WP为高电平时进入写保护状态页写缓冲器自定时擦写周期100万次编程/擦除周期可保存数据100年8脚DIP SOIC或TSSOP封装温度范围商业级和工业级…...

突破性能极限:DeepSeek开源FlashMLA解码内核技术解析
引言:大模型时代的推理加速革命 在生成式AI大行其道的今天,如何提升大语言模型的推理效率已成为行业焦点。DeepSeek团队最新开源的FlashMLA项目凭借其惊人的性能表现引发关注——在H800 GPU上实现580 TFLOPS计算性能,这正是大模型推理优化的…...

点击修改按钮图片显示有问题
问题可能出在表单数据的初始化上。在 ave-form.vue 中,我们需要处理一下从后端返回的图片数据,因为它们可能是 JSON 字符串格式。 vue:src/views/tools/fake-strategy/components/ave-form.vue// ... existing code ...Watch(value)watchValue(v: any) …...

[AI]从零开始的树莓派运行DeepSeek模型教程
一、前言 在前面的教程中,教了大家如何在windows中使用llama.cpp来运行DeepSeek模型。根据前面的教程中,我们也了解到了,我们只需要编译好llama.cpp就可以运行DeepSeek以及类似的LLM模型。那么本次教程就来教大家如何使用树莓派来运行大模型。…...

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(二)
2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(二) 第一部分:网络平台搭建与设备安全防护任务书第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务 1:应急响应&…...

Open WebUI本地部署教程
文章目录 1、系统环境配置2、源码下载2.1 github源码地址下载 3、环境启动3.1 后端环境3.2 前端环境 4、问题4.1 浏览器跨域问题4.2 all-MiniLM-L6-v2模型文件下载失败问题4.3 单独部署backend启动报错问题 1、系统环境配置 操作系统:windows/linux/macos Python版…...

Missing required prop: “maxlength“
背景: 封装一个使用功能相同使用频率较高的input公共组件作为子组件,大多数长度要求为200,且实时显示统计子数,部分input有输入提示。 代码实现如下: <template><el-input v-model"inputValue" t…...

dify本地部署
安装docker。 在官网安装docker。 如果遇到wsl报错,就使用 wsl --updata 进行更新。如果问题解决,进入docker应该是如下界面: 克隆 在自己创建的文件内使用 git clone gitgithub.com:langgenius/dify.git 或 git clone https://github.com…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...