栏目头部广告

容器概念-Docker

1、容器简介

容器(Container):概念上来说,容器是一个Linux进程,Linux认为它只是一个运行中的进程。该进程只知道它被告知的东西。另外,在容器化方面,该容器进程也分配了它自己的IP地址。这点很重要,一旦给予了一个IP地址,该进程就是宿主网络中可识别的资源。然后你可以在容器管理器上运行命令,使容器IP映射到主机中能访问公网的IP地址。建立了该映射,无论出于什么意图和目的,容器就是网络上一个可访问的独立机器,从概念上类似于虚拟机。容器是拥有不同IP地址从而使其成为网络上可识别的独立Linux进程。

托管容器的计算机运行着被剥离的只剩下主要部分的某个Linux版本。该Linux操作系统被所有容器所共享减少了容器足迹的重复和冗余。每个容器只包括该容器特有的部分。下面是一个示意图:

容器概念-Docker(图1)

你可以用它所需的组件来配置容器。一个容器组件被称为层layer。层是一个容器镜像。你从一个基本层开始,这通常是你想在容器中使用的操作系统。(容器管理器只提供你所要的操作系统在宿主操作系统中不存在的部分。)当你构建你的容器配置时,你需要添加层,例如你想要添加网络服务器时这个层就是Apache,如果容器要运行脚本,则需要添加PHP或Python运行时环境。

分层非常灵活。如果应用程序或者服务容器需要PHP5.2版本,你相应地配置该容器即可。如果你有另一个应用程序或者服务需要PHP5.6版本,没问题,你可以使用PHP5.6配置该容器。不像虚拟机,更改一个版本的运行时依赖时你需要经过大量的配置和安装过程;对于容器你只需要在容器配置文件中重新定义层。

所有上面描述的容器的各种功能都由一个称为容器管理器container manager的软件控制。现在,最流行的容器管理器是Docker和Rocket(rkt)。

【注】Docker是容器,容器不一定是docker

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。

Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持,就连Google的Compute Engine也支持docker在其之上运行。

2、Docker组成

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

ž   Docker Client客户端

ž   Docker Daemon守护进程

ž   Docker Image镜像

ž   DockerContainer容器

3、Docker的优点

(1)简化程序

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。

(2)避免选择恐惧症

如果你有选择恐惧症,还是资深患者。Docker帮你打包你的纠结!比如Docker镜像;Docker镜像中包含了运行环境和配置,所以Docker可以简化部署多种应用实例工作。比如Web应用、后台应用、数据库用、大数据应用比如Hadoop集群、消息队列等等都可以打包成一个镜像部署。

(3)节省开支

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker改变了高性能必然高价格的思维定势。Docker与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

作者:UStarGao
链接:https://www.starcto.com/docker/66.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐

UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`