1.初识Docker与容器

初识Docker与容器

文章目录

  • 初识Docker与容器
    • 1、什么是Docker
      • Docker架构
    • 2、为什么使用Docker
      • Docker容器虚拟化的好处
      • Docker与虚拟机比较
      • Docker为什么快

1、什么是Docker

Docker是基于Go语言实现的开源容器项目。Docker是为解决了运行环境和配置问题的软件容器,方便做持续集成并有助与整体发布的容器虚拟化技术。通过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。

Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台。

官网:https://www.docker.com/

仓库:https://hub.docker.com/

Docker架构

Docker使用客户端-服务器架构。Docker客户端与Docker守护进程通信,后者完成构建、运行和分发Docker容器的繁重工作。Docker客户端和守护进程可以运行在同一个系统上,或者您可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API,通过UNIX套接字或网络接口进行通信。另一个Docker客户端是Docker Compose,它允许你处理由一组容器组成的应用程序。

Docker Architecture diagram

  • Docker守护进程

    Docker守护进程(dockerd)监听Docker API请求,管理Docker对象,如镜像、容器、网络和卷。守护进程还可以与其他守护进程通信以管理Docker服务。

  • Docker客户端

    Docker客户端(Docker)是许多Docker用户与Docker交互的主要方式。当您使用诸如docker run之类的命令时,客户端将这些命令发送给dockerd,后者执行这些命令。docker命令使用docker API。Docker客户端可以与多个守护进程通信。

  • Docker registries

    Docker注册表存储Docker镜像。Docker Hub是一个任何人都可以使用的公共注册表,默认情况下Docker会在Docker Hub上查找图像。您甚至可以运行自己的私人注册表。

  • 镜像

    镜像是一个只读模板,带有创建Docker容器的说明。通常,一个映像基于另一个映像,并进行一些额外的定制。

  • 容器

    容器是镜像的可运行实例。您可以使用Docker API或CLI创建、启动、停止、移动或删除容器。您可以将容器连接到一个或多个网络,将存储附加到其上,甚至可以根据其当前状态创建新映像。默认情况下,容器相与其他容器及其主机隔离。您可以控制容器的网络、存储或其他底层子系统与其他容器或主机的隔离程度。

  • 底层隔离原理

    Docker使用名为名称空间的技术来提供称为容器的隔离工作空间。当你运行一个容器时,Docker会为这个容器创建一组命名空间。

    这些名称空间提供了一层隔离。容器的每个方面都在单独的名称空间中运行,其访问仅限于该名称空间。

2、为什么使用Docker

Docker容器虚拟化的好处

  • 更快速的交付和部署

    开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后, 测试和运维人员可以直接使用完全相同的环境来部署代码。 只要是开发测试过的代码, 就可以确保在生产环境无缝运行。 Docker 可以快速创建和删除容器, 实现快速迭代, 节约开发、 测试、 部署的大量时间。

  • 更高效的资源利用

    运行Docker 容器不需要额外的虚拟化管理程序(Virtual MachineManager) 的支持,需要从硬件层面实现虚拟化。 Docker 是内核级的虚拟化, 可以直接复用本地主机的操作系统实现更高的性能, 同时对资源的额外需求很低。与传统虚拟机方式相比, Docker 的性能要提高1~2 个数量级。

  • 更轻松的迁移和扩展

    Docker 容器几乎可以在任意的平台上运行,支持主流的操作系统发行版本。

  • 更简单的更新管理

    使用Dockerfile, 只需要小小的配置修改, 就可以替代以往大量的更新工作。所有修改都以增量的方式被分发和更新, 从而实现自动化并且高效的容器管理。

Docker与虚拟机比较

传统方式是在硬件层面实现虚拟化,需要有额外的虚拟机管理应用和虚拟机操作系统层。

Docker容器是在操作系统层面上实现虚拟化直接复用本地主机的操作系统,因此更加轻量级。

每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。

对比如下:

  • Docker 容器很快, 启动和停止可以在秒级实现, 这相比传统的虚拟机方式(数分钟)要快得多;
  • Docker 容器对系统资源需求很少, 一台主机上可以同时运行数于个Docker 容器;
  • Docker 通过类似Git设计理念的操作来方便用户获取、分发和更新应用镜像, 存储复用, 增量更新;
  • Docker 通过Dockerfile 支持灵活的自动化创建和部署机制, 以提高工作效率, 并标准化流程。
特性docker虚拟机
启动速度秒级分钟级
内存代价很小较多
硬盘使用一般为 MB一般为 GB
性能接近原生弱于
系统支持量/运行密度单机支持上千个容器一般几十个
隔离性安全隔离完全隔离
迁移性优秀一般

Docker为什么快

  1. docker有着比虚拟机更少的抽象层

    由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。

  2. docker利用的是宿主机的内核,而不需要加载操作系统OS内核

    当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。

在这里插入图片描述

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

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

相关文章

24.4.11-13C语言学习笔记|函数、部分结构体【未完待续】

巴拉巴拉~~~哭死,学习啊啊啊啊,学校课好多,只能半夜学了 4.2函数名--特殊的地址: void fun(int a){ int aa1; printf("%d",a); return a; } 指针函数?? void …

(五)C++自制植物大战僵尸游戏LoadingScene的实现讲解

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 一、类介绍 游戏启动后就会立即切换到游戏加载场景中。只有游戏资源文件加载完成后,才能进入游戏。Loadingscene类继承Cocos2d-x中的Scene父类,表明Loadingscene是一个场景类。切换到Loadi…

Mathorcup 甲骨文识别

本资源主要包含第2-4问,第一问直接使用传统图像处理即可,需要有很多步骤,这一步大家自己写就行。 2 第2问,甲骨文识别 2.1 先处理源文件 原文件有jpg和json文件,都在一个文件夹下,需要对json文件进行处理…

大数据存储解决方案和处理流程——解读大数据架构(四)

文章目录 前言数据存储解决方案数据集市运营数据存储(Operational Data Store)数据中心 数据处理数据虚拟化和数据联合虚拟化作为 ETL 或数据移动的替代品数据目录数据市场 前言 在数字时代,数据已成为公司的命脉。但是,仅仅拥有…

读《AI营销画布》品牌企业成长的逻辑(四)

前言 曾几何时,为了销售和品牌这两个扯的一世不可开交,也因为这个在企业里,形成了二个主张派,一派是以为销售为目标;一派是以品牌为目标。最后,,,,也就形成了不同的意见&…

c# .net 香橙派 Orangepi GPIO高低电平、上升沿触发\下降沿触发 监听回调方法

c# .net 香橙派GPIO高低电平、上升沿触发\下降沿触发 监听回调方法 通过gpio readall 查看 gpio编码 这里用orangepi zero3 ,gpio= 70为例 当gpio 70 输入高电平时,触发回调 c# .net 代码 方法1: Nuget 包 System.Device.Gpio ,微软官方库对香橙派支持越来越好了,用得…

学习JavaEE的日子 Day38 网络编程

Day38 网络编程(了解即可) 1. 计算机网络 2. 网络编程 实现多台计算机之间实现数据的共享和传递,网络应用程序主要组成为:网络编程IO流多线程 3. 网络模型 两台计算机之间的通信是根据什么规则来走的(OSI & TCP/IP) 此处简单了解该模型就行《TCP/IP…

Windows瘦客户机系统默认英文?一招改成中文界面

前言 最近发现有很多小伙伴给电脑安装了Windows瘦客户机系统,但开机之后发现系统是英文的,看都看不懂。 今天就给小伙伴们带来更改Windows Thin系统语言的办法。 首先,咱们都知道,更改系统显示语言基本上都是在系统设置或者控制…

Java——类和对象

目录 一.类定义和使用 1.简单认识类 2.类的定义格式 3.注意事项 二.课堂练习 1.定义一个狗类 2.定义一个学生类 3.注意事项: 三.类的实例化 1.什么是实例化 2.注意事项 3.类和对象的说明 四.this引用 1.为什么要有this引用 2.什么是this引用 五.对…

第16章 数据管理组织与角色期望知识点梳理

第16章 数据管理组织与角色期望知识点梳理(附带页码) ◼ 数据管理和数据治理组织需要足够灵活,才能在不断发展的环境中有效地工作。意识、所有权和问责制度是激励和吸引人们参加数据管理积极性、政策和流程的关键。P432 ◼ 如何了解组织的企…

【Docker】docker原理及使用-1

Docker目录 1️⃣概念2️⃣使用容器的好处2️⃣docker和普通软件启动方式的区别2️⃣docker和传统虚拟机的区别 1️⃣下载安装2️⃣安装步骤 1️⃣必须要掌握的核心概念1️⃣命令2️⃣例子2️⃣练习题目2️⃣进入一下python环境(简洁) 1️⃣解释一下 redis1️⃣docker底层隔离机…

AI大模型探索之路-应用篇12:AI大模型应用之向量数据库选型

目录 前言 一、什么是向量数据库? 二、向量数据库的应用场景 1. 图像检索 2. 推荐系统 3. 自然语言处理 三、向量数据库在AI大模型中的应用 1. 训练数据的索引和检索 2. 特征存储和管理 3. 模型中间结果的存储 4. 长上下文的记录和检索 5. 本地知识库的构…

基于springboot实现购物推荐网站系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现购物推荐网站系统演示 摘要 随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了东大每日推购物推荐网站的开发全过程。通过分析企业对于东大每日推购物推荐网站的需求,创建了一个计算机管…

Python求利率

要求 编写程序计算在给定利率、指定年数的情况下投资的未来值。这个计算公式如下。 使用文本域输入投资额、年份和利率。当用户单击“calculate”按钮时,在文本域中显示未来的投资值,如图所示。 代码实现 import tkinter as tkdef calculate():amou…

Spring Batch

Spring是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及W…

使用Python爬虫代理IP快速增加博客阅读量

目录 前言 二、Python爬虫代理IP技术简介 1.什么是爬虫? 2.什么是代理IP? 3.为什么使用代理IP? 三、使用Python爬虫代理IP增加博客阅读量的步骤 1.获取代理IP地址 2.模拟多次访问 3.定时任务 四、注意事项 五、总结 前言 随着互联…

金融机构与金融市场监管

金融机构与金融市场监管 中国的金融监管机构银行业监管的必要性银行业监管的基本目标银行业监管的基本内容商业银行的设立审批制度银行业日常监督管理流动性要求资产质量监管合理的内部控制制度风险集中和风险暴漏的监管银行资本风险资本的计算资本充足率的计算 中国的金融监管…

Mobile Tools v2.0 + Example Game

重要提示!如果您已经拥有我们的资产之一,您可以升级到此资产,根据资产的不同,您将获得15%至40%的折扣。 主要功能 包含一个完整游戏,已集成所有功能(广告、成就、排行榜、应用内购买、评价游戏弹出窗口、本地化、每日奖励、交叉促销和通知)。 包括以下独立资产(170美元…

探索数据结构:顺序串与链式串的深入理解

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 串的定义 串是一种特殊的顺序表,即每一个元素都是单独一…

关于机器学习/深度学习的一些事-答知乎问(四)

如何评估和量化深度学习的可解释性问题? 针对深度学习模型,评估指标能够全面衡量模型是否满足可解释性。与分类的评估指标(准确度、精确度和召回率)一样,模型可解释性的评估指标应能从特定角度证明模型的性能。但是&a…