Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
Docker的主要用途,目前有三大类。 1.提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
2.提供弹性的云服务。因为Docker容器可以随开随关,很适合动态扩容和缩容。
3.组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
Docker的三大理念是:构建、运输、运行
就像Docker的图标一样,它托着许多集装箱。我们可以把宿主机可当做这只鲸鱼,把相互隔离的容器可看成集装箱,每个集装箱中都包含自己的应用程序。鲸鱼或许代表着创始人Solomon Hykes眼中的互联网愿景,就像20世纪50年代集装箱颠覆了全球物资运输方式一样,它将会颠覆信息运输方式,让货物在互联网的火车、汽车、轮船之间畅通无阻。
Docker类似于cs结构,一个守护进程作为服务端,命令作为客户端,用户拿client方式来操作服务端。
镜像(Image) 类似于虚拟机,作用和虚拟机是一样的,唯独是组成部分会有些区别。简单的说想启动一个容器就必须要有镜像
容器(Container) docker是通过容器来运行业务的,就像运行一个kvm虚拟机是一样的。容器其实就是从镜像创建的一个实例。 我们可以对容器进行增删改查,容器之间也是相互隔离的。和虚拟机最大的区别就是一个是虚拟的一个是隔离的。
仓库(Repository) 如百度网盘一样,我们需要一个仓库来存放镜像,Docker官方提供了公共的镜像仓库;从安全和效率的角度考虑我们也可以部署私有环境的Registry或者是Harbor。
特性 | 容器 | 虚拟机 |
---|---|---|
启动时间 | 秒级 | 分钟级 |
硬盘使用(镜像大小) | 一般为MB | 一般为GB |
性能 | 接近原生 | 额外占性能 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
优点: 启动快 轻量,每个镜像都非常小 轻隔离,每个容器都进行隔离,相互不影响
缺点: 容器的隔离性没有虚拟化强 共用linux内核,安全性有先天缺陷 selinux难以驾驭 监控容器和容器排错是个挑战
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。