Docker-01-容器技术和Docker简介

 1、容器技术

1.1 容器技术的历史

一、在最开始,全部服务都时直接部署在物理机上的,具备以下缺点:git

  • 部署很是慢
  • 成本很是高
  • 资源浪费
  • 难于迁移和扩展
  • 可能会被限定硬件厂商

二、以后出现虚拟化技术,虚拟机经过Hypervisor层实现资源的调度web

  • 一个物理机能够部署多个app
  • 每一个app运行在一个虚拟机里面

虚拟化的优势:docker

  • 资源池:一个物理机的资源分配到了不一样的虚拟机里
  • 很容器扩展:容器增长物理机和虚拟机
  • 很容易云化:AWS,阿里云等

虚拟化的局限性:数据库

  • 每个虚拟机都是一个完整的操做系统,要给其分配资源。当虚拟机数量增多时,操做系统自己消耗的资源势必增多!

三、容器技术的出现安全

 什么是容器技术?架构

  •  对软件和其依赖的标准化打包
  • 应用之间相互隔离,效果略低于虚拟机之间的隔离
  • 共享一个OS Kernel
  • 能够运行在不少主流操做系统上

容器和虚拟机的区别:app

容器解决了什么问题?运维

  • 提供app的打包,环境一致性的问题!!
  • 解决了开发和运维之间的矛盾

容器技术的发展历程:性能

2、Docker简介

2.1 什么是docker?

  • Docker是容器技术的一种实现!
  • Docker 是基于Go语言实现的开源项目,诞生于2013年初,最初的发起者dotClound公司,Docker天然开源后受到普遍关注;
  • Docker项目目前已经加入Linux的基金会,遵循Apache2.0协议,所有开源代码均在https://gitHub.com/docker/docker上;
  • Linux的操做系统的支持:Redhat RHEL 6.5/CentOS 6.5往上的操做系统,Ubuntu14.04操做系统,都默认带有docker的安装包;
  • 与Docker的合做方:Google的PaaS(platform as a Service)平台及服务产品,微软的云平台Azure,亚马逊的AWS EC2 Container
  • Docker 的主要目的:Build、Ship and Run Any APP Anywhere,即经过对应用组件的封装(Packing)、分发(Dispatcher)、部署(Deployment) 、运行(Runtime) 等生命周期的管理,达到一次封装处处运行;
  • 组件能够是一个web的应用,也能够是一套数据库,甚至是一个操做系统;
  • Docker 基于Linux的多项开源技术提供了高效敏捷和轻量级的容器方案,而且支持多种主流平台(Paas) 和本地系统上的部署。

 2.2 docker与虚拟机比较

特性 容器 虚拟机
启动速度 秒级 分钟级
硬盘使用 通常MB 通常GB
性能 接近原生 相对弱于
系统支持 单机支持上千个容器 通常几十个
隔离性 安全隔离 彻底隔离

2.3 docker的引擎

docker引擎是一个c/s结构的应用:ui

  • Server是一个常驻进程;
  • REST API 实现了client和server间的交互协议;
  • CLI实现容器和镜像的管理,为用户提供统一的操做界面。

2.4 docker的架构

Docker使用C/S架构,Client 经过接口与Server进程通讯实现容器的构建,运行和发布。client和server能够运行在同一台集群,也能够经过跨主机实现远程通讯。

2.5 docker的核心概念

  • 镜像(Image)

  镜像是只读的,镜像中包含须要运行的文件(提供容器运行时所需的程序、库、资源、配置等文件,还包含了一些为运行时准备的一些配置参数)。镜像用来建立container,一个镜像能够运行多个container;镜像能够经过Dockerfile建立,也能够从Docker hub/registry上下载。

  • 容器(Container)

  Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。

  • 仓库(Repository)

  从认识上来讲,就好像软件包上传下载站,有各类软件的不一样版本被上传供用户下载,共享和管理Docker镜像,官方地址为:https://registry.hub.docker.com/

2.6 Docker底层核心技术

一、Namespaces

  • 作隔离pid,net,ipc,mnt,uts

二、Control groups

  • 作资源限制

三、Union file systems

  • 作Container和image分层

 

参考文章:https://blog.csdn.net/huangjun0210/article/details/85680586#2_Docker_10

相关文章
相关标签/搜索