Docker三大基础组件

Docker有三个重要的概念:仓库、镜像和容器 ,它们是Docker的三大基础组件,这三个组件共同构成了Docker的核心架构,使得Docker能够实现对应用程序的便捷打包、分发和运行。

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

(1)Docker守护进程

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

(2)Docker客户端

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

(3)Docker仓库

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

当使用docker pull或docker run命令时,docker会从您配置的注册表中提取所需的映像。当您使用 docker push命令时,docker会将您的映像推送到您配置的注册表中。

一、镜像

操作系统分为 内核 和 用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空 间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。

Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还 包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数 据,其内容在构建之后也不会被改变。

二、容器

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静 态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因 此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。 容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。 这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特性,很多人初学 Docker 时常常会混淆容器和虚拟机。

三、仓库

镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像, 我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。

一个 Docker Registry 中可以包含多个 仓库(Repository);每个仓库可以包含多个 标签(Tag);每 个标签对应一个镜像。

通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以 通过: 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作 为默认标签。

仓库名经常以 两段式路径 形式出现,比如 jwilder/nginx-proxy,前者往往意味着 Docker Registry 多用 户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。  

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值