Docker的各种概念

0.Docker是个什么鬼?

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:

web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务型环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

1.Docker能做什么?

Docker可以解决虚拟机能够解决的问题,更能由于虚拟机需要的资源太多而无法解决的问题。Docker能够处理的事情如下:

1.隔离应用依赖
2.创建镜像并复制
3.创建容易分发的即启即用的应用
4.允许实例简单,快速的扩展
5.测试应用并随后销毁

Docker实现这些功能的大致思想就是创建软件可移植的轻量级容器,让其可以在任何安装了Docker的机器上运行,而不用关心底层操作系统的细节。在Docker中有几个重要的概念镜像容器数据卷链接

2.Docker的几个重要概念

2.1 镜像

Docker的镜像类似于虚拟机的快照,但是更加的轻量级。如果想要创建镜像的话,一般的套路是根据一个已有的镜像对其进行修改并创建子镜像。

2.2 容器

容器依附于镜像,也就是说可以从镜像中创建容器,相当于从快照中创建了一个虚拟机,不过更轻量级,应用都是在容器上跑的。

举个栗子,我下载了一个Ubuntu的镜像,通过安装Scrapy、Django等应用或者依赖项来对这个镜像进行了修改。然后从这个镜像中创建了3个容器,当容器跑起来了之后再跑我的应用。并且这些容器之间是相互隔离的。

Docker的各种概念_第1张图片

镜像和容器都有一个GUID和一个唯一的名字。如图所示:

Docker的各种概念_第2张图片

不过容器和虚拟机有两个比较大的区别,一个是一个容器一个进程,容器不能多进程。还有一个是当你关掉一个虚拟机后可能也就会丢失一些临时文件,但是关掉一个容器之后,容器对镜像所做的所有修改都会丢失。

2.3 数据卷

数据卷这个东西就是用来无视容器的生命周期把数据持久化的。数据卷表现为容器的空间,但实际上是保存在容器之外的(容器内的话也会受到容器生命周期的影响)。

2.4 链接

当启动一个容器后,这个容器将会被分配一个私有的IP地址,其他容器可以通过这个私有的IP地址来和这个容器进行通信。这样不仅提供了容器之间通信的通道,而且和其他容器共享一个本地网络。

想要开启容器间通信,可以在创建一个新容器时引用其他现有的容器,在刚创建的容器里被引用的容器将获得一个别名,这就是容器之间的链接。

你可能感兴趣的:(Docker)