zoukankan      html  css  js  c++  java
  • docker 容器和镜像理解

    1、镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。容器和镜像是一对一的,一个容器里就运行一个镜像。

    1、base镜像----提供了一个基本的操作系统环境,用户可以根据需要安装和配置软件。
    2、base镜像通常是各种Linux发行版的Docker镜像比如ubuntu、Debian、centos等。
    3、base镜像只是在用户空间与发行版一致,kernel版本与发行版是不同的。比如说虚机系统是ubuntu14.04,运行一个容器是centos系统的,那么centos使用的其实就是本虚机的kernel。
    容器只能使用本地虚机的kernel且不能修改。

    1、每一个镜像都会有一个文本文件Dockerfile,定义了如何构建Docker镜像。编写Dockerfile文件有专门的讲解,百度一下~

    2、镜像的分层结构:DockerHub中绝大多数的镜像都是通过在base镜像中安装和配置需要的软件构建出来的。base镜像是from scratch开始,新镜像是直接在base镜像上构建from centos......
    新镜像是从base镜像一层一层叠加生成的,每安装一个软件就等于在现有的镜像上增加一层。
    3、Docker镜像采用分层结构的好处就是共享资源。

    1、可写的容器层:当容器启动时,一个新的可写层被加载到镜像的顶部,这一层就叫容器层,容器层之下都叫镜像层。只有容器层是可写的,容器层下面的所有镜像层都是只读的。对容器的任何改动都只会发生在容器层中。
    这里,所有的镜像层联合一起组成一个统一的文件系统,用户在容器层看到的就是一个叠加之后的文件系统。镜像层内部是有上下之分的:

    - 添加文件:在容器中创建文件时,新文件被添加到容器层中。
    - 读取文件:当在容器中读取某个文件时,Docker会从上往下依次在各镜像层中查找此文件,一旦找到打开并读入内存。
    - 修改文件:在容器中修改已存在的文件时,Docker会从上往下依次在各个镜像层中查找此文件,一旦找到立即将其复制到容器层中,然后才修改。(copy-on-write特性)
    - 删除文件:在容器中删除文件时,Docker会从上往下依次在镜像层中找,找到后,会在容器层记录下此删除操作。
    copy-on-write特性说明容器层保存的是镜像变化的部分,不会对镜像本身进行任何修改。所以镜像可以被多个容器共享。

  • 相关阅读:
    移动端页面使用rem布局
    Vue2.0 render:h => h(App)
    sublime3 快捷键大全
    node-webkit学习之【无边框窗口用JS实现拖动改变大小等】
    mock.js-无需等待,随机产生数据,让前端独立于后端进行开发
    Sublime Text 3 遇到的一些小坑的解决方法
    Angular Cli 升级到最新版本
    Angular 表单嵌套、动态表单
    angular6 iframe应用
    JS 时间格式 相互转化
  • 原文地址:https://www.cnblogs.com/shawnhu/p/9675807.html
Copyright © 2011-2022 走看看