docker入门教程(一)

1.docker介绍

在这里插入图片描述
上图就是我们今天主角的logo,一头鲸鱼驮着一堆箱子。
我们把百度上面对于docker的介绍摘录过来看下:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
首先我们可以看出docker是一个开源的容器引擎,Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源,Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版,其实这里你会发现一个问题,就是如果你用过老版本的docker,你就会发现17.03版本号与之前版本号跨越有点大,这是与它改变了版本号定义规则导致的。
然后docker提供可移植的容器,“Build,Ship and Run any App,Angwhere”,一次构建,处处运行。
最后docker能够实现虚拟化,但是它是容器技术,要比虚拟机技术轻量。

2.docker优势

docker在开发与运维过程中,具有如下几方面的优势。

  • 快速交付与部署。使用docker,开发人员可以使用镜像来快速构建出一套标准的开发环境;开发完成后,测试与运维人员直接使用相同环境来部署代码。docker可以快速的创建和删除容器,实现快速迭代,节约大量的开发测试部署时间。
  • 更高效的利用资源。docker容器运行不需要额外的虚拟化管理程序,它是内核级别的虚拟化,可以实现更高的性能,同时对资源的额外需求更低。
  • 更轻松的迁移与扩展。docker可以在任意平台运行,包括物理机,虚拟机,公有云,私有云,服务器,个人pc机等等。这种兼容性可以让用户在不同平台之间轻松的迁移应用。
  • 更简单的更新操作。使用dockerfile,只要小小的配置修改,然后就可以代替之前大量更新操作,并且所有的修改都以增量的方式进行分发与更新,从而实现自动化并且高效的容器管理,比如说我们使用的镜像centos7.3版本,然后我想用centos7.5,这里可以在dockerfile中修改下FROM 就可以了。

3. 容器技术与虚拟机技术对比

在这里插入图片描述
我们可以看下上面这张图,左边的是虚拟机技术,自下而上 首先是host os 也就是我们的宿主机,之后就是hypevisor技术,再往上就是虚拟机,也就是图上说的guest os 这是一个板板正正的操作系统,然后就是我们应用程序依赖的底层库,最后才是我们的app,我们在本地电脑装过虚拟机的都知道,比如我们想在linux操作系统运行一个软件,就需要我们本地电脑安装一个虚拟机,这个虚拟机是个实实在在的操作系统,然后再在这上面运行应用程序。
右边是我们的容器技术,是通过docker engine直接运行在host os上面的,也就是直接运行在我们的宿主机上面,省去了guest os。
接下来,我们再来看下docker容器与传统虚拟机技术的特性比较。
在这里插入图片描述

  • docker容器启动速度很快,秒级启动,这相比传统虚拟机技术要快很多。
  • docker容器对系统资源需求少,一台主机上面可以同时运行数千个docker容器。
  • docker可以通过类似git的操作来方便用户获取,分发和更新应用镜像,指令简单,学习成本低
  • docker通过dockerfile配置文件来支持灵活的自动化创建和部署,提高工作效率。
    Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,保证应用性能的同时,尽量减小系统开销。传统虚拟机方式运行N个不同的应用就要启动N个虚拟机(每个虚拟机需要单独分配独占的内存、磁盘等资源),而Docker只需要启动N个隔离的容器,并将应用放到容器内即可。
    当然,在隔离性方面,传统的虚拟机方式多了一层额外的隔离。但这并不意味着Docker就不安全。Docker利用Linux系统上的多种防护机制实现了严格可靠的隔离。从1.3版本开始,Docker 引入了安全选项和镜像签名机制,极大地提高了使用Docker的安全性。

参考《docker技术入门与实战》

猜你喜欢

转载自blog.csdn.net/yuanshangshenghuo/article/details/106483170