首页 > 其他分享 >Docker的基本概念

Docker的基本概念

时间:2024-09-09 10:03:16浏览次数:9  
标签:容器 创建 虚拟机 LXC 镜像 Docker 基本概念

一、docker的由来

容器虚拟化基础之 LXC
LXC 是什么?LXC(LinuX Containers)Linux 容器,一种操作系统层虚拟化技术,为 Linux 内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。透过统一的名字空间和共享 API 来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得 Linux 用户可以容易的创建和管理系统或应用容器。

LXC 是最早一批真正把完整的容器技术用一组简易使用的工具和模板来极大的简化了容器技术使用的一个方案.
LXC 虽然极大的简化了容器技术的使用,但比起直接通过内核调用来使用容器技术,其复杂程度其实并没有多大降低,因为我们必须要学会 LXC 的一组命令工具,且由于内核的创建都是通过命令来实现的,通过批量命令实现数据迁移并不容易。其隔离性也没有虚拟机那么强大。后来就出现了 docker ,所以从一定程度上来说, docker 就是 LXC 的增强版。

总结:Docker是基于LXC虚拟容器之上的容器技术,Docker帮我们封装处理好了调用LXC的命令,我们只需要使用Docker提供的命令即可实现我们想要的容器功能,而不需要关注容器是如何通过LXC语言创建运行的。

二、 Docker 和虚拟机的区别
Docker 作为容器技术的一个实现,或者说让容器技术普及开来的 最成功 的实现。Docker 是基于 Go 语言实现的一个开源项目,它的主要目标是 “Build , Ship and Run Any APP, Anywhere” ,即通过对组件的封装、分发、部署、运行等生命周期的管理,使得用户的应用及其运行环境能够做到“ 一次封装,到处运行 ” 。

** 虚拟机(Virtual Machine,VM)是一种完整的操作系统(OS)实例,可以在物理计算机上运行。** 每个虚拟机都包含自己的操作系统、应用程序和系统资源,例如内存、处理器等。虚拟机通过虚拟化层与底层物理硬件进行通信,提供了强大隔离性和安全性。每个虚拟机都需要额外的资源和运行时间来启动和运行。

Docker是一种轻量级的容器化技术,它利用操作系统级别的虚拟化(OS-level virtualization),将应用程序及其所有依赖项封装在一个可移植的容器中。Docker容器与主机共享操作系统内核,因此相对于虚拟机而言,更加轻量级和高效。Docker容器可以更快地启动、停止和迁移,并且更节省资源。

三、docker系统架构以及包含的技术
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。Docker 容器通过 Docker 镜像来创建的。Docker官方架构如下:

Docker 官方架构包括以下几个核心组件:

Docker Client(Docker 客户端):客户端是与 Docker Daemon 交互的命令行工具或图形界面工具。用户可以使用客户端来向 Docker 守护进程发送请求,以执行容器的创建、启动、停止等操作。

Docker Host(Docker 主机):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker Daemon(Docker 守护进程):守护进程是 Docker 的后台服务,负责管理和运行容器。它接受 Docker API 请求,并执行相关操作,如创建、启动、停止、删除容器等。Docker Daemon 运行在主机上,并通过 RESTful API 与客户端进行通信。

Docker 镜像(Docker Images):镜像是用于创建 Docker 容器的模板。它包含了应用程序运行所需的所有文件系统、库和依赖项。镜像是只读的,可以通过 Docker Hub 或私有仓库获取。用户可以基于现有镜像创建自定义镜像,也可以将自定义镜像推送到仓库供其他用户使用。

Docker 容器(Docker Containers):容器是基于镜像创建的运行实例。容器是基于镜像创建的可运行实例。每个容器都是一个隔离的环境,包含了应用程序和其依赖项。容器具有自己的文件系统、网络和进程空间,可以独立地运行在宿主机上。容器可以被启动、停止、删除和迁移,使得应用程序的部署和管理变得更加灵活和高效。

Docker Registry(Docker 仓库):仓库是用于存储和分发 Docker 镜像的集中位置。Docker Hub 是 Docker 官方提供的公共仓库,用户可以在其中找到大量的官方和社区维护的镜像。此外,用户还可以搭建私有仓库来存储自己的镜像。

标签:容器,创建,虚拟机,LXC,镜像,Docker,基本概念
From: https://www.cnblogs.com/velloLei/p/18404012

相关文章

  • 从零搭建 Docker 私有库
    对于涉及机密的公司,不可能提供镜像给公网中的镜像仓库,所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。DockerRegistry是官方提供的工具,可以用于构建私有镜像仓库。‍搭建私有库私有库的搭建也很简单,也是下载一个镜像,然后run就可以了。下载镜像:$doc......
  • Docker 知识梳理及其安装使用
    Docker介绍Docker是一个强大的工具,用于高效开发、打包和部署应用程序。Docker是一种容器管理服务。Docker于2013年发布。它是开源的,可用于Windows、macOS和Linux等不同平台。Docker正在快速交付、测试和部署代码。这样可以减少编写代码和在生产环境中运行代码之间的延......
  • 【机器学习】朴素贝叶斯网络的基本概念以及朴素贝叶斯网络在python中的实例
    引言文章目录引言一、朴素贝叶斯网络1.1基本概念1.1.1节点1.1.2边(Edges)1.1.3条件独立性1.2特点1.2.1结构简单1.2.2易于理解和实现1.2.3计算效率高1.3应用1.4数学表示1.5局限性二、朴素贝叶斯网络在python中的实例2.1实例背景2.2实现步骤2.3python代码......
  • 【机器学习】马尔可夫随机场的基本概念、和贝叶斯网络的联系与对比以及在python中的实
    引言马尔可夫随机场(MarkovRandomField,简称MRF)是一种用于描述变量之间依赖关系的概率模型,它在机器学习和图像处理等领域有着广泛的应用文章目录引言一、马尔科夫随机场1.1定义1.2特点1.3应用1.4学习算法1.5总结二、选择马尔可夫随机场的学习算法的标准2.1问......
  • 【高阶数据结构】秘法(二)——图(一):图的基本概念和存储结构
    前言:今天我们要讲解的是数据结构中图的部分,这部分在我们实际生活中也是经常会碰到的,同时这部分也是数据结构中比较有难度的部分,这部分内容我会把它分为多章来进行讲解,今天我们先来讲解一下图的基本概念和存储结构目录一、图的基本概念1.图的定义2.术语解释3.图的分......
  • Arch搭建Nas系统(5)之五:Docker容器
    5.1安装Docker5.1.1安装dockerpacman-Sdockerdocker-composesudosystemctlstartdocker&&sudosystemctlenabledockerdockerinfo5.1.2docker命令docker镜像操作#查看所有镜像dockerimages#搜索镜像dockersearchimage名称#下载镜像dockerpull......
  • docker在linux下的安装
    Docker安装步骤(Ubuntu)Step1:更新系统软件包sudoaptupdateStep2:安装依赖包【用于通过HTTPS来获取仓库】sudoaptinstallapt-transport-httpsca-certificatescurlsoftware-properties-commonStep3:添加Docker官方GPG密钥curl是一个用于在命令行......
  • Redis 入门 - 安装最全讲解(Windows、Linux、Docker)
    经过上一章节的介绍,相信大家对Redis已经有了大致的认知,今天主要给大家详细讲解Redis在Windows、Linux、Docker下的安装过程。01Windows下面给大家介绍三种在Windows环境下安装Redis的方式:官方建议方式、可执行文件方式、脚本方式。1、官方建议方式Redis官方是不支持直接......
  • 如何减⼩dockerfile⽣成镜像体积?
    减小Dockerfile生成的镜像体积可以通过多种方法实现。以下是一些有效的策略:1.选择合适的基础镜像使用更小的基础镜像:例如,使用alpine镜像代替ubuntu或debian,因为Alpine的体积通常更小。FROMalpine:latest2.优化安装过程减少层数:将多个RUN命令合并为一个,减......
  • docker和container区别
    Docker和容器(Container)是相关但不同的概念。以下是它们之间的主要区别:1.定义Docker:Docker是一个开源平台,用于开发、交付和运行应用程序。它通过容器化技术提供了一种轻量级的方法来打包和部署应用及其依赖项。容器(Container):容器是一个轻量级、可移植的执行环境,封装......