走进Docker容器的世界
in Docker with 4 comment

走进Docker容器的世界

in Docker with 4 comment

1. Docker简介

Docker是一种运行在Windows和Linux的程序软件,用于创建,管理和编排容器。Dcoker是在github上开发的Moby开源项目的一部分。
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口 -来自百度百科

2. Dcoker安装

参照我之前的笔记可完美安装

Docker&Docker compose安装

3 Dcoker存储驱动

每一个docker容器都有一个本地存储空间,用于保存层叠的镜像层(image Layer)以及挂载的容器文件系统,默认情况下,容器的所有读写操作都发生在起镜像层或挂载的文件系统中,所以存储是每个容器的性能和稳定性不可或缺的一个环节

存储驱动是节点级别的,这意味着每个docker主机只能选择一种驱动,而不能为每个容器选择不同的驱动。

4 纵观Docker架构

一个完整的Docker有以下几个部分组成

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

4.1 docker 引擎

docker引擎是用来运行和管理容器的的核心软件,一般人会简单的将它认为是docker或者docker平台

以下是架构简图,参考《深入浅出docker》书籍

docker架构.png

4.2 镜像

可以将镜像理解为包含os文件系统和应用的对象,也可理解为虚拟机的模板,包含了你运行所需的基础配置,如果你是一名开发者,你可以理解为一个类(class)

4.3 容器

对于我们开发者而言,可以理解为一个应用程序,即容器及应用,里面包含了运行程序所必备的基础环境

5 docker容器与虚拟机有什么区别

容器和虚拟机都依赖于宿主机才能运行。宿主机可以是笔记本,是数据中心的物理服务器,也可以是公有云的某个实例。在下面的示例中,假设宿主机是一台需要运行4个业务应用的物理服务器。

VM模型

从更高层面来讲,Hypervisor是硬件虚拟化(Hardware Virtualization) ----Hypervisor将物理资源划分为虚拟资源,另外,容器是操作系统虚拟化(OS Virtualization)-- 容器将系统资源划分为虚拟资源

此外,还要说的是,启动速度,因为容器不是完整的操作系统,所以启动要远比虚拟机快。切记,在容器内部不需要内核,也没有定位,解压以及初始化的过程,所以最终的结果就是,容器可以在1秒内启动。唯一对容器启动时间有影响的就是容器内部应用启动所花费的时间

这就是容器模型要比虚拟机模型简洁并且高效的原因

6 总结

本次只是对初学者对docker有个大体认识以及为什么容器技术在近些年开源之后热火并博客文章体系快速成长起来,一线大厂对容器的重视程度如此之高与他的整体架构有密切的联系,毫不过分的说容器技术使得世界走上了容器应用化的道路,颠覆了之前传统的硬件架构。