Docker系列之原理简单介绍


@

Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。

1.1、Docker架构简介

Docker 使用客户端-服务器 (C/S) 架构模式,先给出官方的图:

从图示,先列出主要的构件

  • host:docker主机,安装了docker的操作系统
  • client:docker客户端,也一般是在操作系统
  • registry:docker仓库,存放镜像的地方,图示可以看出,分为docker hub(docker远程仓库)、private registry(私人的docker仓库)
  • images:docker镜像,存放在docker仓库里,就像window系统的exe文件一样,需要安装才能使用
  • container:docker容器,镜像启动后的实例就是容器,就像window的exe文件(镜像)安装之后才能使用

所以,Docker的使用步骤:

  • 安装Docker
  • 去Docker仓库查找镜像
  • 下载Docker镜像
  • 运行镜像,生成容器

1.2、Docker 两个主要部件

  • Docker: 开源的容器虚拟化平台
  • Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台

Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是Docker提出的"Build once,Run anywhere"

1.3、虚拟机和Docker对比:

对比一下虚拟机和Docker,虚拟机是一种模拟了操作系统全部或者部分硬件的软件,所以运行起来会比较慢,相当于启动了一个操作系统,而Docker不一样,docker运行起来只是一个进程,这个进程叫容器,所以Docker技术又叫容器技术,Docker比较轻量级启动很快,所以一台机器是可以启动多个Docker进程的

1.4、Docker内部结构

理解 Docker 内部构建要先了解docker的重要概念:

  • Docker 镜像 ( Docker images)
  • Docker 仓库 (Docker registeries)
  • Docker 容器 (Docker containers)

镜像:镜像是用来创建Docker容器的,Docker 镜像就是一个只读的模板,其实镜像就是一种文件结构,文件后缀名就是.iso,有重装过操作系统的可能比较熟悉,重装系统时候也是需要下载iso镜像的,当然docker的镜像没操作系统那么庞大

容器:容器是由镜像创建的运行实例,可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。Docker通过容器运行应用

仓库:仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。

ok,有了这些必要的理论知识之后,你可能不是很理解,所以要去实践一下就清楚了,所以详情参考我的博客:Docker系列之常用命令操作手册,我的Docker博文专栏:Docker系列博客专栏

Docker系列之原理简单介绍的更多相关文章

  1. Docker系列-(1) 原理与基本操作

    Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器 ...

  2. openresty开发系列10--openresty的简单介绍及安装

    openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...

  3. LDAP服务器的概念和原理简单介绍

    LDAP服务器的概念和原理简单介绍 1. 目录服务 目录是一个为查询.浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样.目录数据库和关系数据库不 ...

  4. CAS单点登录原理简单介绍

    1. SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统. ...

  5. Android通过辅助功能实现抢微信红包原理简单介绍

    简书文章:https://www.jianshu.com/p/e1099a94b979 附抢红包开源项目地址,代码已全改为Kotlin了,已适配到最新微信7.0.5版本,如果对你有所帮助赏个star吧 ...

  6. dubbo学习过程、使用经验分享及实现原理简单介绍

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  7. 【Dubbo基础】dubbo学习过程、使用经验分享及实现原理简单介绍

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  8. 初学HTML5系列一:简单介绍

    最近很闲,就想着学点东西,然后就瞄中了html5,以前只看过很简单的一些,这次是系统的学下,顺便也记录下.废话不多说,开始正题. 稍微介绍下html5,html5是W3C和WHATWG 合作的结果. ...

  9. 【Zookeeper系列】Zookeeper简单介绍(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技 ...

随机推荐

  1. js抽奖概率随机取出数据(简单示例)

    在平常活动开发当中,经常会碰到抽奖等类似的js功能,那么下面我们随机取数组中的一条来展示出来. ( 一 ) 无概率问题 var gift_ = ['apple pro一台','iphoneX一台',' ...

  2. @PathVariable 处理参数为空的情况

    @RequestMapping(value = "/get/{id}/{userId}", method = RequestMethod.GET) public Result ge ...

  3. 《Windows内核安全与驱动开发》 3.2 内存与链表

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 3.2 内存与链表 1. 尝试生成一个链表头并将其初始化. 2. 尝试向内存 ...

  4. 【IoT平台北向API调用】使用Postman调用Https接口

    1. Download and install postman https://www.getpostman.com/ Version:the version I download is Postma ...

  5. .Net Core下使用MQTT协议直连IoT平台

    [摘要] .Net平台通过原生MQTT接口,作为南向设备对接OceanConnect平台 因为种种历史原因吧,目前华为平台上对.net的支持案例SDK确实比较少,当看到各种语言的SDK和Demo,唯独 ...

  6. 一条数据的HBase之旅,简明HBase入门教程1:开篇

    [摘要] 这是HBase入门系列的第1篇文章,主要介绍HBase当前的项目活跃度以及搜索引擎热度信息,以及一些概况信息,内容基于HBase 2.0 beta2版本.本系列文章既适用于HBase新手,也 ...

  7. es6 babel 安装以及使用

    1,安装好node(需要使用npm包管理工具) 2,在本地项目路径下npm init,格式化成功后会在项目下生成一个配置文件package.json 3,本地安装bable npm install - ...

  8. EditText 无法失焦与失焦后键盘不收缩解决方案

    背景 有一个需求,比方说下图: 点击了上图的Image 区域才可以编辑. 那么我首先想到的就是: android:focusable="false" 不让它获取到焦点不就ok吗? ...

  9. Java修炼——基于TCP协议的Socket编程_双向通信_实现模拟用户登录

    首先我们需要客户端和服务器端. 服务器端需要:1.创建ServerSocket对象.2.监听客户端的请求数据.3.获取输入流(对象流)即用户在客户端所发过来的信息.                  ...

  10. 数据库Oracle 数字,字符,日期之间的相互转换

    数据类型转换分为俩种 . 隐式数据类型转换:当源数据的类型和目标数据的类型不同的时候,如果没有转换函数,就会发生隐式转换,也称自动转换. 对于直接赋值转换:  对于表达式赋值: 隐式转换的问题: 性能 ...