docker(一)

前言

在介绍Docker之前,需要知道什么是虚拟化,为什么要使用虚拟化,以Linux而言,linux操作系统会有一个主进程PID=1,由主进程派生出其他进程来控制不同得服务,比如:PID=2 运行的是nginx服务,PID=3 运行的是tomcat服务等等,服务之间可能会互相影响,为了让不同的服务运行在不同的运行时环境中实现互不影响,同时又不增加服务器成本,衍生出了虚拟化技术,实现了在一个系统之上模拟多个操作系统(不同的运行时环境),随着技术的发展,虚拟化技术的开销较大,比如,只想运行一个py的脚本,但是却需要创建一个虚拟的操作系统,这并不合理,于是又衍生出了容器技术,将虚拟化层的抽象层(用户层)剥离,使用 docker engine 来替代(替代来宾操作系统,也就是虚拟机),只需要通过docker 引擎就可以直接连接到宿主及操作系统中,极大减小了开销。

一、Docker 概述

在这里插入图片描述

Docker是在Linux容器里运行应用的开源工具,是一种轻量级的虚拟机。诞生于2013年。
Docker是一个用于开发,交付和运行应用程序的开放平台。能够将应用程序于基础架构分开,从而可以快速交付软件。
Docker是一个应用容器引擎,让开发者可以以打包的方式封装系统、应用、以及依赖包等到一个可移植的镜像中,然后发布到任何流行的Linux或者Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制(隔离机制),相互之间不会有任何接口。做到了“一次封装,到处运行”。

Docker容器与传统虚拟化的比较

特性 Docker 虚拟机
启动速度 秒级 分钟级
计算能力损耗 接近无 损耗50%左右
磁盘占用 MB级 GB级
数量 上千个( 进程) 几十个(操作系统)
隔离性 进程级别 系统级别
封装程度 只打包项目代码和依赖关系,共享宿主机内核 完整的操作系统,与宿主机隔离
操作系统 主要支持Linux 几乎所有

二、Docker的底层原理

    Docker使用一种称为namespaces提供容器的隔离工作区的技术。运行容器时,Docker会为该容器创建一 组名称空间。

这些名称空间提供一层隔离。容器的每个方面都在单独的名称空间中运行,并且其访问仅限于该名称空间。
通过Linux中内核态的管理模块 cgroups (Control groups) 控制组 与 n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值