Docker的核心组件包括:

  • Docker客户端和服务器,也称为Docker引擎;
  • Docker镜像;
  • Registry;
  • Docker容器。

1.Docker客户端和服务器

Docker是一个客户端/服务器(C/S)架构的程序。Docker客户端只需向服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker守护进程又是也称为Docker引擎。Docker提供了一个命令行工具docker以及一整套RESTful API来与守护进程交互。用户可以在统一台主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端链接到运行在另一台宿主机上的远程Docker守护进程。
下图描绘了Docker的架构。

2.Docker镜像

竟像是构建Docker的一个脚本。
镜像是基于联合(Union)文件系统的一种层式的结构,由一系列指令一步一步构建出来。例如:

  • 添加一个文件;
  • 执行一个命令;
  • 打开一个端口。

3.Registry

Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。Docker公司运营的公共Registry叫做Docker Hub。用户可以在Docker Hub注册账号,分享并保存自己的镜像。
Docker Hub上由很多注册用户构建和分享的镜像。需要Nginx Web服务器的Docker镜像,或者Asterix开源PABX系统的镜像,抑或是MySQL数据库的镜像?这些镜像在Docker Hub上都有,而且具有很多版本。
用户也可以在Docker Hub上保存自己的私有镜像。例如,包含源代码或专利信息等需要保密的镜像,或者只在团队或组织内部可见的镜像。
用户甚至可以架设自己的私有Registry。私有Registry可以受到防火墙的保护,将镜像保存在防火墙后面,以满足一些组织的特殊需求。

4.容器

Docker容器是Docker实际运行的地方。它相当于划了一块地方,画地为牢,然后在里面搞事情。
书面上的描述是:
Docker可以帮用户构建和部署容器,用户只需要把自己的应用程序或服务打包放进容器即可。容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认为,镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。
总结起来,Docker容器就是:

  • 一个镜像格式;
  • 一系列标准的操作;
  • 一个执行环境。

Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个模型u能用到自己的设计哲学中,唯一不同的是:集装箱运输货物,而Docker运输软件。
每个容器都包含一个软件镜像,也就是容器的“货物”,而且与真正的货物一样,容器里的软件镜像可以进行一些操作。例如,镜像可以被创建、启动、关闭、重启以及销毁。
和集装箱一样,Docker在执行上述操作时,并不关心容器中到底塞进了什么,它不管里面是Web服务器,还是数据库,或者是应用程序服务器什么的。所有容器都按照相同的方式将内容“装载”进去。
Docker也不关心用户要把容器运到何方:用户可以在自己的笔记本中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,再把容器部署到Amazon EC2主机的集群中去。像标准集装箱一样,Docker容器方便替换,可以叠加,易于分发,并且尽量通用。
使用Docker,可以快速构建一个应用程序服务器、一个消息总线、一套使用工具、一个持续集成(continuous integration,CI)测试环境或者任意一种应用程序、服务或工具。可以再本地构建一个完整的测试环境,也可以为生产或开发快速复制一套复杂的应用程序栈。可以说,Docker的应用场景相当广泛。

Docker学习笔记——1.2 Docker组件的更多相关文章

  1. Docker学习笔记之搭建Docker运行环境

    0x00 概述 既然 Docker 是一款实用软件,我们就不得不先从它的安装说起,只有让 Docker 运行在我们的计算机上,才能更方便我们对 Docker 相关知识和使用方式的学习.得益于与商业性的 ...

  2. Docker学习笔记六:Docker搭建企业级私有仓库

    前言 Docker不仅是一个强大的服务器部署工具,而且它还有一个官方的Docker Hub registry用于储存Docker镜像.上传镜像到Docker Hub是免费的,上传的镜像文件同时也对公共 ...

  3. docker 学习笔记21:docker连接网络的设置

    1.如果docker主机不需要通过代理连接外网 则docker的相关命令(如docker search)或docker容器与网络相关的操作都可以正常进行,不需要特殊设置. 2.当docker主机 是通 ...

  4. docker 学习笔记20:docker守护进程的配置与启动

    安装好docker后,需要启动docker守护进程.有多种启动方式. 一.服务的方式 因为docker守护进程被安装成服务.所以,可以通过服务的方式启停docker守护进程,包括查看状态. sudo ...

  5. Docker学习笔记之使用 Docker Compose 管理容器

    0x00 概述 通过之前的介绍,我们已经基本掌握了构建.运行容器的方法,但这还远远不够,由于 Docker 采用轻量级容器的设计,每个容器一般只运行一个软件,而目前绝大多数应用系统都绝不是一个软件所能 ...

  6. Docker学习笔记之了解 Docker 的核心组成

    0x00 概述 在掌握 Docker 的一些背景知识后,我们还不得不花费一节的篇幅来简单介绍有关 Docker 核心的一些知识.当然,大家不要觉得有“核心”这类的词,我们就要在这一节中深入 Docke ...

  7. Docker学习笔记二:Docker常用命令及提升拉取镜像的速度

    一.Docker命令: 1.docker images   //命令用来查看docker中所包含的镜像信息 2.docker ps -a    //命令用来查看docker中所包含所有容器信息(运行状 ...

  8. docker学习笔记1认识docker

    简介 Docker是一个开源的应用容器,开发者可以打包其应用以及依赖到一个可移植的容器当中.当然容器与容器之间不存在任何接口,完全独立.最大程度的解决了我的软件只能不能在你的电脑上运行的尴尬局面.开发 ...

  9. docker学习笔记-02:docker常用命令

    一.帮助命令: 1.查看版本:docker version 2.查看信息:docker info 3.查看帮助信息:docker --help 二.镜像命令: (一).查看已有镜像: 1.命令:doc ...

随机推荐

  1. dede5.7评论框不显示,文章页表情不显示,解决办法

    dede5.7评论框不显示,文章页表情不显示,解决办法 进入dede后台,系统-系统基本参数-其它选项,找到模板引擎禁用标签,去掉里面的php,如图 进入dede模板目录,默认是/templets/d ...

  2. usa单位换算

    1.温度换算 摄氏度    C = 5/9(F-32) ≍ (F-32)/1.8 (F为华氏温度值) 华氏度   F = 1.8C + 32 (C为摄氏温度值) 3.重量换算 1品脱(pint) ≍ ...

  3. Sublime 原版安装

    sublime text3 安装方法 ① 官网下载安装 https://www.sublimetext.com/3 ② 更改hosts文件 具体方法如下: windows系统的hosts文件在C:\W ...

  4. IDEA快速实现接口快捷方式

    IDEA快速实现接口快捷方式 ALT +INSERT

  5. 学到了林海峰,武沛齐讲的Day37 完

    day1   多用户同时刻下载上传程序分析 day2   htlm介绍 觉得收货的季节到了 day3   htlm介绍 day4   htlm介绍 关键字介绍  Toray大仙 Toray大仙 day ...

  6. 基于verilog的分频器设计(奇偶分频原理及其电路实现:上)

    在一个数字系统中往往需要多种频率的时钟脉冲作为驱动源,这样就需要对FPGA的系统时钟(频率太高)进行分频.分频器主要分为奇数分频,偶数分频,半整数分频和小数分频,在对时钟要求不是很严格的FPGA系统中 ...

  7. git的实际工作经验总结

    分支工作的一个较佳的实践, 即git工作的最佳实践 从最初的svn到后来的git,上来给我的感觉就是git更方便, 可以在本地进行版本的提交,回退. 后来对hash有所了解, 知道了git的每个版本其 ...

  8. ubuntu 14.04 系统配置磁盘,CPU,内存,硬盘信息查看

    Linux查看物理CPU个数.核数.逻辑CPU个数# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 查看分区磁盘 ...

  9. 你未必知道的49个CSS知识点

    作者:老姚,<JS正则迷你书>的作者 https://github.com/qdlaoyao/css-gif 本文的每一条,都是我曾经发过的掘金沸点,其中有很多条超过了百赞(窃喜).鉴于时 ...

  10. 深度学习面试题14:Dropout(随机失活)

    目录 卷积层的dropout 全连接层的dropout Dropout的反向传播 Dropout的反向传播举例 参考资料 在训练过程中,Dropout会让输出中的每个值以概率keep_prob变为原来 ...