Docker容器的通俗理解

  • 1、什么是Docker?
  • 2、Docker容器的优势
  • 3、总结优势如下:


1、什么是Docker?

Docker容器docker容器解决隔离性问题采用的技术 docker容器理解_服务器


大鲸鱼–>操作系统

应用程序–>货物

  • 概念上理解
    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上。容器是完全使用沙箱机制,相互之间不会有任何接口,cgroup 提供资源隔离,包括 CPU、存储器、block I/O 与网络。
    Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。
  • 再形象一点理解
    所谓的物理机就是下面这样的别墅

    那么虚拟机就是下面这样的套房

    最后就是我们的容器,就是下面这样的胶囊公寓

2、Docker容器的优势

小王刚开始学习Docker的时候,找资料在网上看到最多的是Docker的好处。比如:

1、Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多

2、Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

3、更快速的交付和部署、更轻松的迁移和扩展

等等……

因为小王是做java开发的,他们现有的模式是在一个服务器上安装统一一个jdk,运行多个tomcat,每个tomcat里面一个java应用,大家也知道tomcat不用安装,当他们项目要迁徙的时候也只需要把整个tomcat打包然后在另一台服务器上解压就ok了,也很简单。。。当时小王就不懂Docker有什么好处,一度以为对他们现有的模式没用。知道昨天跟其他人交流小王才弄明白一个问题,那就是应用隔离与资源独立!!

Docker容器docker容器解决隔离性问题采用的技术 docker容器理解_服务器_02

  • 模式A1:比如CPU爆满等等,另一个应用也就玩完了
  • 模式A2:重启虚拟机,安装/配置装虚拟机等比较耗时耗力
  • 模式A3:一个服务器上运行多个容器,一个容器拥有独立的CPU、内存等资源,完全满足了应用隔离的需求。而且容器重启,1秒搞定!应用迁移的时候,这个大家应该也知道,所有装了Docker的服务器,只需把镜像pull或者load进去,run,一切OK,就是这么任性。
3、总结优势如下:
  • 1、安全,隔离强
    Docker 赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。
    Docker 默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器
  • 2、可移植性
  • 3、轻量和高效
    在微服务架构中,有些服务负载压力大,需要以集群部署,可能要部署几十台机器上,对于某些中小型公司来说,使用虚拟机,代价太大。如果用容器,同样的物理机则能支持上千个容器,对中小型公司来说,省钱!