Docker学习笔记1

最近还是在小学妹的推动下,关注了Docker,也是汗颜。目前我还停留在”什么是Docker"这个概念上,还没有深入的去了解。现在根据我的了解,以及《Docker从入门到实践》的补充,在这里,我简单地以我的理解来解释下Docker吧。Ps.链接是网上找到的《Docker从入门到实践》pdf文档。 http://dockerpool.com/static/books/docker_practice/install/ubuntu.html

  首先,Docker到底是什么呢?Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。具体的就是,让用户不需要去关心容器的管理,操作更简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
我个人觉得下面的图片很好滴比较了 Docker 和传统虚拟化方式的不同之处:

容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统;而传统方式则是在硬件层面实现。


总而言之,就是Docker类似于VM,但是他的颗粒度却比VM小,这样可以实现轻量级的操作系统虚拟化。其次,Docker的启动是秒级实现的,这比VM快很多;另外Docker对系统资源的利用率很高,据扯一台主机上能同时运行千台Docker。再者,通过上面的图片我们也可以知道,Docker引擎相当于VM中的Hypervisior和Guest OS两层的综合,在Docker引擎之上,具有独立的APP和Bins/libs,可以看出一个Docker容器中,可以运行隔离的不同的APP,这些APP相互之间互不干扰。而对于VM来说,APP A和APP B是运行在两个不同的VM上的。(不知道我这样说大家能不能理解,当然,这也是我个人的理解)

Docker的一些优势:

1、更高效的虚拟化

没有Hypervisior,内核级的虚拟化

2、更轻松的迁移和扩展

Docker几乎可以在任意的平台上运行,包括物理机、虚拟机、服务器、公有云和私有云。这种兼容性可以让用户把一个程序从一个平台上迁移到另一个。(迁移这部分其实我还是不了解啊)

3、更简单管理

使用Docker,减轻了工作量。其实,这个也可以图片中可以看出,在Docker中修改,这相当于修改全局变量啊,那同一参数,你得在每个VM中都修改。(理解对否?)

4、最关键的还是:更快速的交付和部署

想必也正是因为这个原因,Docker才能这么流行吧。对于开发者和运维师来说,最希望的还是一次性创建和修改。Docker可以通过建立一套容器,在容器中添加代码。

Docker包含3个概念:1)镜像;2)容器;3)仓库

1)镜像

镜像是一个只读模块,是用于创建容器的。一个镜像是完整的,包括操作系统以及Apache或必需的程序。

2)容器

容器当然是用于运行应用的,每个容器之间相互隔离,保证安全性和数据的独立性。容器可以理解为简易版的Linux环境和应用程序。

3)仓库

仓库是集中存放镜像的场所。仓库分为公开仓库和私有仓库。最大的公开仓库是Docker Hub,而国内的公开仓库有Docker Pool。用户可以在本地建立一个私有仓库。

你可能感兴趣的:(Docker学习笔记1)