一、Docker 的三个进本概念?

了解 Docker 的三个基本概念,就可以大致了解 Docker 的生命周期。

  1. 镜像(Image)
  2. 容器(Container)
  3. 仓库(Repository)

二、镜像

1.Docker 镜像

  我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像  ubuntu:18.04  就包含了完整的一套 Ubuntu 18.04 最小系统的 root 文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变

2.分层存储

  因为 镜像包含了操作系统完整的 root 文件系统,其体积还是很巨大的,所以引入了 Unios FS 技术,将其设计为分层存储的架构。所以镜像不是那种 ISO 打包文件,镜像是一个虚拟的概念,它是由一组文件系统构成,或者说多层文件系统联合构成。

  镜像在构建时,是一层层构建,上一层是下一层的基础,每一层构建结束就不会在被修改,后一层任何修改只会作用在当前层。例如删除上一层文件,不会真的删除该文件,而是会标记删除然后隐藏起来,最终运行容器的时候不会被看见,但是会一直跟随镜像。因此构建镜像时需要小心,不要添加不需要的东西,任何额外的东西都要在本层构建完之前清除。

  分层存储使镜像的定制和复用变得容易,可以用之前做好的镜像作为基础层,然后添加新的层,定制自己所需要的东西,构建新的镜像。

三、容器

  镜像(Image)和容器(Conatiner)的关系就像是面向对象的类和实例一样,镜像是静态的定义,容器是镜像运行的实体,容器可以被创建,启动,停止,删除,暂停等。容器的实质是进程,但是又和宿主的进程不同,容器有自己的独立命名空间,因此容器拥有自己 root 文件系统,自己的网络配置,自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。所以好多初学者都会把容器和虚拟机搞混。容器同样和镜像一样使用分层存储,以镜像为基础层,在上面创建了一个容器存储层,是为了容器运行时读写准备的。注意,在容器被删除后,容器存储层保存的任何信息都不会保存,它和容器的生命周期一样,所以任何需要保存的数据 Docker 建议保存在数据卷(Volumes)或者宿主机目录中,这样数据不会随着容器的消失而消失。

四、仓库

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

一个 Docker Registry 可以有多个 仓库(Repository),每个仓库可以含多个标签(Tag),每个标签都是一个镜像。

  最初我没有搞懂 Docker Registry 和 仓库(Repository),简单来说就是 Docker Registry 是注册服务器,用于管理镜像仓库,起到服务器的作用,仓库(Repository)就是存储镜像,起到存储镜像的作用。默认的 Docker Registry 就是 Docker Hub,其中拥有很多高质量的镜像。

Docker 从入门到实践(二)Docker 三个基本概念的更多相关文章

  1. Docker 从入门到实践(一)Docker 简介

    读前须知:本教程大部分都是[Docker 从入门到实践 ]一书的知识,有兴趣可以直接观看书籍.同时,借鉴书籍的知识,如有侵权,请告知我,我会删除处理.谢谢. 一.什么是 Docker? Docker ...

  2. Docker从入门到实践

    一般说来 SPA 的项目我们只要启一个静态文件 Server 就可以了,但是针对传统项目就不一样了,一个项目会依赖很多服务端程序.之前我们的开发模式是在一台开发机上部署开发环境,所有人都在这台开发机上 ...

  3. 学习资源 Docker从入门到实践 pdf ,docker基础总结导图

    学习资源 Docker从入门到实践 pdf ,docker基础总结导图 Docker从入门到实践 pdf 云盘地址:https://pan.baidu.com/s/1vYyxlW8SSFSsMuKaI ...

  4. Docker从入门到实践(2)

    二.基本概念 Docker 镜像 我们都知道,操作系统分为内核和用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相 ...

  5. 读书笔记---《Docker 技术入门与实践》---其一

    一.镜像1.1.搜索 搜索所有nginx镜像 $ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Officia ...

  6. Docker从入门到实践(3)

    三.安装 Docker Docker 分为 CE 和 EE 两大版本.CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月. Docker CE 分为  ...

  7. Docker从入门到实践(4-1)

    使用 Docker 镜像 在之前的介绍中,我们知道镜像是 Docker 的三大组件之一. Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像. ...

  8. docker的常用操作之二:docker内无法解析dns之firewalld设置等

    一,如何启动一个已退出的容器? [root@localhost ~]# docker start storage4 说明:架构森林是一个专注架构的博客,地址:https://www.cnblogs.c ...

  9. Docker入门与实践之 docker安装与了解

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

随机推荐

  1. TensorFlow中的并行执行引擎——StreamExecutor框架

    背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 在前一篇文章中,我们梳理了TensorFlow中各种异构Device的添加和注 ...

  2. Go基础系列:函数(2)——回调函数和闭包

    回调函数和闭包 当函数具备以下两种特性的时候,就可以称之为高阶函数(high order functions): 函数可以作为另一个函数的参数(典型用法是回调函数) 函数可以返回另一个函数,即让另一个 ...

  3. 为Spring Cloud Config插上管理的翅膀

    最近一致在更新Spring Cloud Config的相关内容,主要也是为这篇埋个伏笔,相信不少调研过Spring Cloud Config的用户都会吐槽它的管理能力太弱.因此,就有了下面为讲推荐的这 ...

  4. 使用 Cglib 实现多重代理

    前言 由于 Cglib 本身的设计,无法实现在 Proxy 外面再包装一层 Proxy(JDK Proxy 可以),通常会报如下错误: Caused by: java.lang.ClassFormat ...

  5. python安装Jieba中文分词组件并测试

    python安装Jieba中文分词组件 1.下载http://pypi.python.org/pypi/jieba/ 2.解压到解压到python目录下: 3.“win+R”进入cmd:依次输入如下代 ...

  6. 机器学习笔记(5) KNN算法

    这篇其实应该作为机器学习的第一篇笔记的,但是在刚开始学习的时候,我还没有用博客记录笔记的打算.所以也就想到哪写到哪了. 你在网上搜索机器学习系列文章的话,大部分都是以KNN(k nearest nei ...

  7. redis的Pub/Sub

    redis的Pub/Sub机制类似于广播架构,Subscriber相当于收音机,可以收听多个channel(频道),Publisher(电台)可以在channel中发布信息. 命令介绍 PUBLISH ...

  8. C#面向对象之封装。

    封装是面向对象的基础和重要思想之一,今天具体的了解封装这一特性后发现其实自己已经接触过很多关于封装的内容了. 一.什么是封装. 封装的概念:将具体的实现细节装到一个容器中,封闭或隐藏起来(使用访问修饰 ...

  9. 4.7 explain 之 Extra

    一.说明 包含不合适在其他列中显示,但十分重要的信息. 二.分类 a. Using filesort : 说明mysql 会对数据使用一个外部的索引排序,而不是按照表内的索引顺序排序进行读取的.mys ...

  10. software testing

    Software Testing Software testing is the process of evaluation a software item to detect differences ...