0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Docker入门指南之Docker介绍

jf_78858299 来源:CSDN 作者:一只楠喃 2023-02-06 15:36 次阅读

**二、**Docker介绍

2.1 什么是虚拟化

在计算机中,虚拟化是一种资源管理技术,是将计算机的各种实体资源,如:服务器、网络、内存、存储等等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原来的组态更好的方式来应用这些资源,这些资源的核心虚拟部分是不受现有资源的架设方式,低于或者物理组态所限制,一般所指的虚拟化资源包括计算能力和资料存储。

在实际的生产过程中,虚拟化技术主要是用来解决高性能的物理硬件产能过剩和老的硬件产能过低的重用重组,透明化底层物理硬件,从而最大化的利用物理硬件,对资源充分利用。

虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip),桌面虚拟化、服务虚拟化、虚拟机等等。

虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,这样就可以充分利用硬件资源。

2.2 认识Docker

图片

  • Docker是一个开源的应用容器引擎
  • 诞生于2013年初,基于Go语言实现,dotCloud公司出品(后改名为Docker Inc)Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的linux服务器上
  • 容器是完全使用沙箱机制,相互隔离
  • 容器性能开销极低
  • Docker从17.3版本之后分为CE(Community Edition社区版)和EE(Enterprise Edition企业版)

小结:Docker是一种容器技术,解决软件跨环境迁移的问题

2.3 容器与虚拟机比较

2.3.1 什么是虚拟机

虚拟机是一个计算机系统的仿真,简单来说,虚拟机可以实现在一台物理计算机上模拟多台计算机运行任务。

  • 操作系统和应用共享一台或多台主机(集群)的硬件资源,每台VM有自己的OS,硬件资源是虚拟化的。

  • 管理程序(hypervisor)负责创建和运行VM,它连接了硬件资源和虚拟机,完成server的虚拟化。

    由于虚拟化技术和云服务的出现,IT部门通过部署VM可以可减少cost提高效率

图片

VMs也消耗大量系统资源,每个VM不仅运行一个OS的完整copy并且需要所有硬件的虚拟化copy,这消耗大量RAMCPU

相比单独计算机,VM是比较经济的,但对于一些应用VM是过度浪费的,需要容器。

2.3.2 什么是容器

  • 容器是将操作系统虚拟化,这与VM虚拟化一个完整的计算机有所不同。
  • 容器是在操作系统之上,每个容器共享OS内核,执行文件和库等。共享的组件是只读的,通过共享OS资源能够减少复现OS的代码,意味着一台server仅安装一个OS可以运行多个任务。
  • 容器是非常轻量的,仅仅MB水平并且几秒即可启动。相比容器,VM需要几分钟启动,并且大小也大很多。

图片

图片

2.4、 Docker与虚拟机形象比喻

2.4.1 什么是物理机

图片

2.4.2 什么是虚拟机

图片

2.4.3 什么是docker

图片

三、Docker 组件

3.1 Docker 服务端和客户端

Docker是一个客户端-服务端(C/S)架构程序 ,Docker客户端只需要向Docker服务端或者守护进程发出请求,服务端或者守护进程完成所有工作返回结果。

图片

Docker提供了一个命令行工具Docker以及一整套的Restful API,可以在同一台宿主机器上运行Docker守护进程或者客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。

图片

docker引擎是一个c/s结构的应用,主要组件见下图:

图片

  • Server是一个常驻进程
  • REST API 实现了client和server间的交互协议
  • CLI 实现容器和镜像的管理,为用户提供统一的操作界面

3.2 Docker 构架

Docker使用C/S架构, Client 通过接口与Server进程通信实现容器的构建,运行和发布 .client和server可以运行在同一台集群,也可以通过跨主机实现远程通信。

图片

3.2.1 Docker 镜像

Docker 镜像(Image)就是一个只读的模板。例如:一个镜像可以包含一个完整的操作系统

环境,里面仅安装了 Apache 或用户需要的其它应用程序

  • 镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
  • 镜像(Image)就是一堆只读层(read-only layer)的统一视角,也许这个定义有些难以理解。

看看下面这张图:

图片

右边可以看到多个只读层,它们重叠在一起,除了最下面一层,其它层都会有一个指针指向下一层。这些层是Docker内部的实现细节,并且能够在docker宿主机的文件系统上访问到。

统一文件系统(Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。

图片

3.2.2 Docker 容器

Docker 利用容器(Container)来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

  • 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网 络空间等)和运行在其中的应用程序。

  • 创建Container首先要有Image,也就是说Container是通过image创建的。

  • Container是在原先的Image之上新加的一层,称作Container layer,这一层是可读可写的(Image是只读的)。

    在面向对象的编程语言中,有类跟对象的概念。类是抽象的,对象是类的具体实现。Image跟

    Container可以类比面向对象中的类跟对象,Image就相当于抽象的类,Container就相当于具体实例化的对象。

    Image跟Container的职责区别:Image负责APP的存储和分发,Container负责运行APP

    图片

3.2.3 Registy(注册中心

仓库(Repository)是集中存放镜像文件的场所。 有时候会把仓库和仓库注册服务(Registry)混为一谈,并不严格区分。

图片实际上,仓库注册服务器上往往存放多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

  • 最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。
  • 国内的公开仓库包括时速云 、网易云等,可以提供大陆用户更稳定快速的访问。
  • 当然,用户也可以在本地网络内创建一个私有仓库,当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。

**

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8912

    浏览量

    85016
  • Docker
    +关注

    关注

    0

    文章

    449

    浏览量

    11784
收藏 人收藏

    评论

    相关推荐

    Docker是什么?

    docker1-原理介绍
    发表于 08-22 11:02

    Docker是什么?

    为什么是Docker?尽管现在的Docker已经风靡全球,但还是有很多开发者(特别是嵌入式开发者)对Docker认识还是仅仅停留在它的服务器应用上面。殊不知,Docker已经是微软Az
    发表于 10-28 07:11

    Docker入门指南

    指南介绍了如何使用Docker简化嵌入式设备和服务器上的多体系结构应用程序部署。 快速扩展软件环境可能是一项既困难又耗时的任务。在本指南中,我们将向您展示
    发表于 08-02 06:09

    docker基础知识和使用bmnnsdk时的docker常用命令

    本文旨在介绍docker基础知识和使用bmnnsdk时的docker常用命令,帮助没有接触过docker的开发者快速上手。 一、docker
    发表于 09-18 07:59

    学习 Docker 容器的 8 个命令分享

    利用这 8 个命令可以学习 Docker 容器的基本管理方式。这是一个为 Docker 初学者准备的,带有示范命令输出的指南
    发表于 06-22 12:03 1356次阅读
    学习 <b class='flag-5'>Docker</b> 容器的 8 个命令分享

    docker存储驱动的工作原理

    Docker的存储驱动官方有介绍其工作原理,这里只是简单概括一下。Docker使用了层的概念,docker在构建镜像的时候,会逐行执行我们的Dockerfile中的每一行,每执行一行的
    的头像 发表于 06-26 11:49 4535次阅读

    应用于Docker的安全工具介绍

    环境。本文介绍的应用于Docker的安全工具,其中既包含既来自Docker本身工具,也包括第三方安全工具。 电子书Continuous Integration and Deployment
    的头像 发表于 03-12 14:05 1701次阅读

    Docker——从入门到实践

    docker_practice.zip
    发表于 04-19 10:44 0次下载
    <b class='flag-5'>Docker</b>——从<b class='flag-5'>入门</b>到实践

    Docker中文指南

    chinese_docker.zip
    发表于 04-19 10:15 2次下载
    <b class='flag-5'>Docker</b>中文<b class='flag-5'>指南</b>

    docker技术入门与实战

    入门docker的首本书,系统化掌握容器技术栈
    发表于 06-09 14:38 0次下载

    Docker镜像的详细讲解

    本文是对 Docker 镜像的详细讲解,讲解了如何安装 Docker、配置 Docker 镜像加速以及操作 Docker 镜像。希望对大家有所帮助~
    的头像 发表于 08-02 10:00 2102次阅读

    docker 搜索镜像,docker查看镜像详细信息(docker下载镜像命令)

    Docker Hub是集中管理的Docker镜像注册中心。通过Docker 用户可以在注册中心搜索、下载和使用CLI命令行工具中的镜像。以下是常用的Docker命令搜索镜像:
    的头像 发表于 07-19 09:46 1730次阅读

    如何启动本机docker服务

    Docker是一个开源项目,可以帮助开发者打包应用程序及其依赖,并且能够将其作为独立的容器来运行。本文将详细介绍如何在本机上启动Docker服务。 第一步:安装Docker 在开始之前
    的头像 发表于 11-23 09:43 1878次阅读

    docker进入容器的方法有哪些

    Docker是一种流行的容器化平台,它能够快速构建、交付和运行应用程序。在使用Docker时,我们经常需要进入容器进行调试、管理和运行命令等操作。本文将详细介绍Docker进入容器的各
    的头像 发表于 11-23 09:45 1w次阅读

    docker核心组件有哪些

    Docker Image、Docker Container、Docker Registry 和 Docker Compose。以下将详细介绍
    的头像 发表于 11-23 09:47 1760次阅读