(一)Docker简介

一、Docker是什么

1. 为什么会有Docker

​ 一款产品从开发到上线,从操作系统到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。安装的时候,把原始环境一模一样地复制过来,开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题

2.Docker的理念

​ docker是基于GO语言实现的云开源项目。docker的主要目标是“build,ship and run APP,anywhere“也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP及用户环境能够做到”一次封装,到处运行“

3.总结

​ 解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

二、Docker能干什么

1.之前的虚拟技术

​ 虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统中运行另一种操作系统,应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其它部分毫无影响。这类虚拟机完美的运行了另一套系统,能够使应用程序、操作系统和硬件三者之间的逻辑不变。

缺点:占用资源多、冗余步骤多、启动慢

2.容器虚拟化技术

​ 由于虚拟机存在的缺点,Linux发展出了另外一种虚拟化技术:Linux容器。Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。

​ ①传统虚拟机是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程

​ ②容器内的应用进程直接运行于宿主内核,容器没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更加轻便

​ ③每个容器之间相互隔离,每个容器都有自己的文件系统,容器之间进程不会相互影响,能区分计算资源

3.开发、运维 DevOps

一次构建,随处运行

  • 更快速的应用交付和部署
  • 更便捷的升级和扩缩容
  • 更简单的系统运维
  • 更高效的计算资源利用

4.企业现象

​ 2020年春节疫情期间,全国各高校线上开学,各企业线上办公,流量每天呈指数激增,是对中国互联网人的一场技术大考验。一些在线产品在这期间保持了持续不断的十倍、几十倍的业务容量增长:钉钉8天扩容10万台服务器,腾讯在线会议紧急扩容100万核。整个系统需要的资源是超乎想象的,用最短的时间解决史无前例的问题,调动全公司的资源,把解决问题的时间缩短十倍。2月12日,钉钉宣布连续扩容10万台服务器,在疫情期间道路封闭、园区隔断、人员异地的条件下,阿里云完成了十万台服务器的调拨、打包、运输、调度、上架、发布。腾讯表示,带宽扩容需要三个月,但实际上我们只花了三天。这些我们甚至都不能想象的操作背后,离不开容器管理和自动化。

三、Docker安装

1、前提

  • CentOS Docker安装

    Docker支持以下的CentOS版本:CentOS 7(64-bit)、CentOS 6.5(64-bit)或更高版本

  • 前提条件

    目前,CentOS仅发行版中的内核支持Docker

    Docker运行在CentOS7上,要求系统为64位、系统内核版本为3.10以上

    Docker运行在CentOS 6.5或更高的版本上,要求系统为64位、系统内核版本为2.6.32-431或更高

  • 查看自己的内核

四、Docker原理

1.Docker是怎么样工作的

​ Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器,是一个运行时环境,就是所谓的“集装箱”

2、为什么Docker比VM快

​ 1)Docker有着比虚拟机更少的抽象层。由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上Docker将会在效率上有明显优势

​ 2)Docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核等几个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的。而Docker由于直接利用宿主机的操作系统,则省略了这个过程,因此新建一个Docker容器只需要几秒钟

Docker容器 虚拟机
操作系统 与宿主机共享OS 宿主机OS上运行虚拟机OS
存储大小 镜像小,便于存储与传输 镜像庞大(VMdk/vdi等)
运行性能 几乎无额外性能损失 操作系统额外的CPU、内存消耗
移植性 轻便、灵活、适用于Linux 笨重,与虚拟化技术耦合度高
硬件亲和性 面向软件开发者 面向硬件运维者
部署速度 快速、秒级 较慢,10s以上
原文地址:https://www.cnblogs.com/wenha/p/12591189.html