zoukankan      html  css  js  c++  java
  • <Docker学习>1. 简介

    Q: Dokcer是什么?

    A: 是一种虚拟化技术。参考https://www.imooc.com/learn/867快速了解Docker。

    Q: 传统虚拟机技术和Dokcer的区别?

    A: 传统虚拟机技术是虚拟出一套硬件后,在其运行一个完整的操作系统,再在该系统上运行所需要的应用进程;而dokcer容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,也没有进行硬件虚拟,所以docker技术比传统的虚拟机技术更轻便。详细可参考:虚拟机技术和Dockers的区别

       

    Q:哪里使用了 Dokcer

    A:docker的用途通常隔离不同的应用,例如前端 后端 数据库,以及一些独立的功能模块。在微服务领域这块,应用非常广。看看他人的说法 http://dockone.io/question/89

    Q: Docker的优势?

    A: Build Once,Run Anywhere. 参考 https://blog.csdn.net/xiangxizhishi/article/details/79441391

    基本概念

    Docker 是Google公司已Go语言开发 的,基于Linux内核的cgroup ,namesapce,以及AUFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面上的虚拟化技术。

    Docker三个基本概念,了解这三个基本概念,就了解了docker的生命周期

    • 镜像(Image)
    • 容器(Container)
    • 仓库(Repository)

    镜像(image)

      镜像提供容器运行时所需要的程序,资源、配置文件等,是一个特殊的文件系统。是容器运行的基础

      镜像是多层文件系统组成的,是一个分层存储的架构,在镜像的构建中,会一层层的构建,每一层构建完成就不会发生改变,后一层的改变只会在自己这一层发生改变。删除前一层的文件操作,实际上不会删除前一层的文件,而是仅仅在该层将文件标记为删除,实际上还存储在前一层。因此在镜像的构建过程中,只尽量的添加该层需要的文件,任何和该层无关的文件要清理。

     如下图:我们拉取一个tomcat的镜像,一个红框说明一层。

    容器(container)
      容器的实质就是进程,与直接在宿主机运行的进程不同,容器进程运行在一个属于自己独立的命名空间中,有自己独立的root文件系统,网络配置,自己的进程空间。镜像和容器的关系就像是 类和对象实例的关系,镜像是静态的定义,容器是运行时的实体,可以被创建、暂停、删除,启动、停止等。
      镜像是分层存储的,容器也是分层存储,容器以镜像为基础层,创建一个当前容器存储层,称为容器存储层,为容器运行时读写而准备。容器存储层的生命周期和容器是一致的,容器消亡时,容器存储层的数据也会消失。按照Docker的最佳实践,容器存储层需要保持无状态化,不应该向容器层写入数据。容器的写入操作应该使用数据卷(volume)或者绑定宿主目录,跳过容器存储层直接对宿主机或者网络存储进行读写,性能和稳定性更好。
     
    仓库(repository)
      镜像构建完成之后,可以在宿主机运行,但是需要在其他服务器上运行这个镜像,需要一个集中存储、发布镜像的一个服务,Docker Registry就是这样的服务。Docker Registry可以包含多个仓库,每个仓库包括多个标签,每个标签表示一个镜像。
     
    Repository 和 Registry 不要混淆:Repository 是仓库,集中存放镜像的地方,Registry是注册服务器,就是管理仓库的具体服务器,每个服务器上可以有多个仓库,每个仓库下面有多个镜像。例如仓库地址dl.dockerpool.com/ubuntu ,dl.dockerpool.com是服务注册地址,ubuntu是仓库名。

    如下图:repository 名称是tomcat,标签(tag)是latest 表示最新版本。

    参考:

    https://www.imooc.com/learn/867

    http://dockone.io/article/2387

    http://dockone.io/question/89

    https://blog.csdn.net/xiangxizhishi/article/details/79441391

    《Dockers 入门到实战》

  • 相关阅读:
    Leetcode 92. Reverse Linked List II
    Leetcode 206. Reverse Linked List
    Leetcode 763. Partition Labels
    Leetcode 746. Min Cost Climbing Stairs
    Leetcode 759. Employee Free Time
    Leetcode 763. Partition Labels
    搭建数据仓库第09篇:物理建模
    Python进阶篇:Socket多线程
    Python进阶篇:文件系统的操作
    搭建数据仓库第08篇:逻辑建模–5–维度建模核心之一致性维度2
  • 原文地址:https://www.cnblogs.com/xiaojianfeng/p/9372271.html
Copyright © 2011-2022 走看看