一文搞懂 Docker

6个月前发布 SanS三石
29 0 0

人们在使用虚拟化一段时间后,会发现一系列问题。如,一个人只需要运行一小段程序,跑一个小的进程。为此建立虚拟机显得很浪费,且在迁移服务程序的时候,还需要迁移整个虚拟机。整个过程也是很复杂的。嗯,对了,创建虚拟机还比较费钱耶。

为解决该问题,容器技术应运而生!

本期,我们一起以Docker为切入点,聊聊容器相关知识吧~

01.Docker起源

Docker 的前身是一家名叫 dotCloud 的公司。

dotCloud :主要提供基于Pass的云计算技术服务,具体说来就是与 LXC 有关的容器技术。

作为一家创业小公司,dotCloud 在行业竞争中步履维艰!于是dotCloud 的几个创始人就聚一起想啊想,想啊想,想着想着决定开源!既然养不起了,就把 dotCloud的内部保密程序源代码开放给所有人,让大家一起参与进来养活它·····

2013年3月,dotCloud 的创始人决定将 Golang 编写的 Docker 项目开源!这,不开则以,一开飞天!

Docker 开源项目爆火以后,dotCloud 公司干脆将名字改成了Docker Inc. 。

而 Docker 之所以会火,其主要原因就是区别于当时业界的网红:虚拟机,在资源隔离层面更“轻”、更“灵活”!

总之,我们在这里说了半天的 Docker ,其本身并不是容器,它是创建容器的工具,是开源的应用容器引擎。

02.Docker概述

Docker中文意思:人工码头,而它的logo也是一个鲸鱼背着很多货物。像码头运输货物一样。

ps:我们可以把物理机(宿主机)当作这只鲸鱼,把相互隔离的容器可以看成集装箱,每个集装箱都包含自己的应用程序。

一文搞懂 Docker

(1)Docker 的优点:

  • 轻量级:所有容器在一台机器上共享同一个操作系统内核,这样他们立即开始,并更有效地利用内存。Image 是从分层文件系统的构建,这样他们能够共享公共文件,使得磁盘使用率和 Image 的下载更加高效。
  • 开放:Docker 容器是基于开发的标准,允许容器运行在主流的 Linux 发布版和 Microsoft 操作系统作为所有的基础设施。
  • 安全:容器使得应用程序彼此隔离,而基础架构同时为应用程序提供了额外的保护层。

(2)容器 与 虚拟机之间的区别:(科普部分,可不看)

Docker是属于容器服务的一种,虽说其本身并不是容器,但其也是创建容器的工具。所以,一起看看容器和虚拟机的区别是什么吧~

容器归根结底也是虚拟化,不过它是轻量级的虚拟化.

通过虚拟机和容器的架构图,来区分两者:

*虚拟机架构图:

一文搞懂 Docker

每个虚拟机都包括应用程序、必要的二进制文件和库以及一个完整的客户操作系统(Guest OS),尽管它们被分离,它们共享并利用主机的硬件资源,将近需要十几个 GB 的大小。

*容器架构图:

一文搞懂 Docker

容器包括应用程序及其所有的依赖,但与其他容器共享内核。它们以独立的用户空间进程形式运行在主机操作系统上。他们也不依赖于任何特定的基础设施,Docker 容器可以运行在任何计算机上,任何基础设施和任何云上。

好了,概述部分赶紧结束!不然人都跑光了····接下来,我们进入到理解部分,趣看“Docker”!

03.如何理解Docker

Docker 的三大核心概念分别是:

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

讲个简单的故事:

我来到了海边,想在这里住下了,于是我开始找石头,木材,刀具建造房子,但是住一段时间,我想住深林里了。我又离开海边,在深林里重新开始之前的操作。突然,出现一个精灵,她教我一种魔法,可以复制房子,将它做成镜像放在我的背包里。等我下次想住田间的时候,我把镜像拿出来,直接复制一套房子就好了。

这里就可以简单类比啦:

我的背包就是仓库,镜像就是 Docker 的镜像,复制出来的房子就是 Docker 容器。

本期干货到此结束啦,欢迎点赞关注我们。

© 版权声明

相关文章

没有相关内容!

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...