zoukankan      html  css  js  c++  java
  • Docker简介

    什么是容器?
    一种虚拟化的方案
    操作系统级别的虚拟化
    只能运行相同或相似内核的操作系统
    依赖于Linux内核特性:Namespace和Cgroups(Control group)

    什么是Docker?
    将应用程序自动部署到容器,是一个开源的应用容器引擎(Go语言开源引擎)

    Docker目标
    提供简单轻量的建模方式
    职责的逻辑分离
    快速高效的开发生命周期
    鼓励面相服务的架构,Docker推荐单个容器只运行一个程序或进程

    Docker使用场景
    1、使用docker容器开发、测试、部署服务
    2、创建隔离的运行环境
    3、搭建测试环境
    4、构建多用户的平台即服务(PaaS)基础设施
    5、提供软件即服务(SaaS)的应用程序
    6、高性能、超大规模的宿主机部署

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    一个完整的Docker有以下几个部分组成:
    dockerClient客户端
    Docker Daemon守护进程
    Docker Image镜像
    DockerContainer容器

    Docker 架构
    Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

    Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。

    Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。

    特性
    在docker的网站上提到了docker的典型场景:
    1、使应用的打包与部署自动化
    2、创建轻量、私密的PAAS环境
    3、实现自动化测试和持续的集成/部署
    4、部署与扩展webapp、数据库和后台服务

    局限
    1、Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用
    2、LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的
    3、隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库
    4、网络管理相对简单,主要是基于namespace隔离
    5、cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)
    6、Docker对disk的管理比较有限
    7、container随着用户进程的停止而销毁,container中的log等用户数据不便收集
    针对1-2,有windows base应用的需求的基本可以pass了; 3-5主要是看用户的需求,到底是需要一个container还是一个VM, 同时也决定了docker作为 IaaS 不太可行。
    针对6,7虽然是docker本身不支持的功能,但是可以通过其他手段解决(disk quota, mount --bind)。总之,选用container还是vm, 就是在隔离性和资源复用性上做权衡。

  • 相关阅读:
    MutationObserverAPI--微任务
    Promise.then方法的执行顺序例题分析
    遍历器Iterator--指针对象
    最实用的数组去重方法
    【JavaScript】允许IE8使用placeholder
    【JavaScript】创建命名空间,Class,LOG
    【JavaScript】JavaScript模拟Class
    【Java】PrettyTime
    【JavaScript】日期和数字格式化
    前端开发总结
  • 原文地址:https://www.cnblogs.com/linjiqin/p/8569739.html
Copyright © 2011-2022 走看看