您的位置:首页 > 运维架构 > Docker

Docker基础教程(2)简介

2017-08-04 09:10 423 查看
简介

Docker可以做什么

重要概念

更多

1. 简介

Docker是一个开源项目,它在linux操作系统上提供了一个软件抽象层和操作系统层虚拟化的自动管理机制。Docker利用了Linux的资源分托机制(cgroups以及命名空间)来创建独立的软件容器。Linux对命名空间的支持完全隔离工作环境中的应用程序,包括进程树,网络,用户ID与挂载文件系统;而cgroups则提供了资源隔离,包括cpu,内存等。

2. Docker可以做什么?

Docker可以解决虚拟机能够解决的问题,

也可以解决虚拟机由于资源要求过高而无法解决的问题。

隔离应用依赖

创建应用镜像并复制

创建易于分发的即开即用的应用或者应用镜像

允许实例简单快速扩展

易于测试和销毁

Docker的初衷是创建软件程序可移植的轻量容器,让软件可以在任何安装了Docker的主机上运行,而不用关心底层操作系统,就好像集装箱一样,你可以把集装箱放在任意一艘船上。

3. 重要概念

Docker最重要的两个概念是镜像(image)容器(container)。当然,链接和数据卷也很重要,后面再说。

镜像(image)

镜像类似于虚拟机的快照,但是非常轻量。每个镜像都有一个ID和自己的名字(name)和标签(tag).

容器(container)

你可以从镜像中创建容器,就好象从快照创建虚拟机一样。应用都是在容器里运行的。

举个例子,如下图所示,左侧蓝色框里的表示你有一个ubuntu的镜像,里面安装了Django,你可以从这个镜像创建任意个容器,每个容器都有自己需要运行的内容。



这个过程就好比你有一个系统安装光盘,你可以用这个光盘给好几个电脑安装系统,但是之后每个电脑都有自己的工作。安装好之后的每个电脑都可以接着安装自己需要的软件,每台电脑都是独立的。容器也是一样的,每个容器之间都是隔离的,但是每个容器之间也可以通信(就好像每台电脑之间也可以通信一样)。

就好像一台电脑上安装或者卸载软件不会对由原来的安装盘造成影响一样,你对容器的修改也不会影响创建这个容器的镜像,镜像在出生的那一刻便不会再改变,你只能创建新的镜像。创建新的镜像有好多种方法,你可以从一个镜像A产生一个容器a,对这个容器a修改之后把这个容器做成一个镜像B,但是这不意味着你修改了原来的镜像A,你只是生成了一个新的镜像,如果你从A创建容器,你在容器a里安装的修改并不会在A镜像里发生。如果你希望创建一个保留了这些修改的容器,你应该从镜像B来创建容器。

数据卷

从上面的介绍可以知道,容器是有生命周期的,容器运行结束后在容器里的修改是无法保留的(除非你创建了一个新的镜像),因此引入了数据卷的概念。数据卷可以让你不受容器生命周期的影响进行数据持久化。数据卷可以表现为容器内的空间,你在容器内可以访问数据卷的内容,但是数据卷实际上保存在容器之外。使用数据卷可以让你在不影响数据的前提下销毁,重建,修改,丢弃容器。Docker允许你定义应用部分和数据部分。使用Docker你需要有一个思维转变:容器应该是短暂的,一次性的。数据的持久化使用数据卷完成,应用的持久化使用镜像完成。

链接

容器启动的时候,会随机分配到一个私有IP,其他容器可以使用这个IP与之通信。

4. 更多

本文主要介绍了一些关于Docker的概念性的知识。后面的教程会教给大家怎么一步一步学会使用Docker.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  虚拟化