Docker介绍及优点

前言

这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。

微信小程序搜索:Python面试宝典

或可关注原创个人博客:https://lienze.tech

也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习

docker-介绍

docker容器实际上就是运行的一个进程

只不过由于docker帮助我们包装了这个进程,给这个进程加以一个可运行的微linux环境而已

让我们感觉看起来"像"虚拟机而已。所以也就不奇怪,为什么容器的启动是秒级的,启动一个虚拟机是分钟级别的

docker简介

Docker(码头工人)是一个开源项目,诞生于 2013 年初

最初是 dotCloud 公司(后由于 Docker 开源后大受欢迎就将公司改名为 Docker Inc ,总部位于美国加州的旧金山)内部的一个开源的 PAAS 服务 (Platform as a ServiceService )的业余项目

它基于 Google 公司推出的 Go 语言实现

项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护


Docker 是基于 linux 内核实现,Docker 最早采用 LXC 技术 ,LXC 是 Linux 原生支持的容器技术,可以提供轻量级的虚拟化

可以说 docker 就是基于 LXC 发展起来 的,提供 LXC 的高级封装,标准的配置方法

在LXC的基础之上,docker提供了一系列更强大的功能

而虚拟化技术 KVM(KernelKernel-based Virtual Machine Machine) 基于模块实现, 后来Docker 改为自己研发并开源的 runc 技术运行容器,彻底抛弃了LXC


LXC为Linux Container的简写

可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。

容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求

Linux Container提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制。

Linux Container有点像chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机,因为lxc是一种操作系统层次上的资源的虚拟化

docker优点

Docker相比虚拟机的交付速度更快,资源消耗更低

Docker采用客户端/服务端架构、使用远程API来管理和创建容器、可以轻松的创建一个轻量级的、可移植的、自给自足的容器

docker 的三大理念是build(构建)、ship(运输)、run(运行)

Docker遵从apache 2.0协议,并通过(namespace及cgroup等)来提供容器的资源隔离与安全保障等

所以Docke容器在运行时不需要类似虚拟机(空运行的虚拟机占用物理机6-8%性能)的额外资源开销,因此可以大幅提高资源利用率

总而言之Docker是一种用了新颖方式实现的轻量级虚拟机.类似于VM但是在原理和应用上和VM的差别还是很大的,并且docker的专业叫法是应用容器(Application Container)

请添加图片描述

docker组成

请添加图片描述

  • Docker 主机(Host):一个物理机或虚拟机,用于运行Docker服务进程和容器,也称为宿主机,node节点
  • Docker 服务端(Server):Docker守护进程,运行docker容器
  • Docker 客户端(Client):客户端使用docker命令或其他工具调用docker API
  • Docker 仓库(Registry): 保存镜像的仓库
  • Docker 镜像(Images):镜像可以理解为创建实例使用的模板,也就是操作系统
  • Docker 容器(Container): 容器是从镜像生成对外提供服务的一个或一组服务,也可以理解为是一个运行的虚拟机

虚拟机和docker对比

  • docker的优势

    • 资源利用率更高:一台物理机可以运行数百个容器,但是一般只能运行数十个虚拟机
    • 开销更小:不需要启动单独的虚拟机OS内核占用硬件资源
    • 启动速度更快:可以在数秒内完成启动
    • 集成性更好:和CI/CD(持续集成/持续部署)相关技术结合性更好,实现自动化管理
  • 虚拟机的优势

    • 更好的实现服务运行环境隔离
    • 每个虚拟机都有独立的内核
    • 网络管理更加丰富高级
    • 可以在32bit的 Linux/Windows/unix环境下使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李恩泽的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值