Docke
docker的出现
Docker是诞生于2013年,是dotCloud的一个开源项目,基于Google推出的GO语言实现。遵从Apache2.0协议。
docker的介绍
Docker的目标是实现轻量级的操作系统虚拟化的解决方案。
Docker的基础是Linux容器(LXC)等技术,(LXC系统提供工具来管理容器,具有先进的网络和存储支持,还有最小容器操作系统模版的广泛选择)。
在LXC的基础上Docker进行了进一步的封装,用户不需要去关心容器的管理,操作更简单。就像操作一个快速轻量的虚拟机一样简单。现在docker是云计算计算发展的重要一环了,各大云服务商都提供了Docker镜像帮助大家快速在Linux Centos环境下安装Docker。例如 腾讯云Docker快速安装镜像(省却手工安装的麻烦)
docker的优势
更快速的交付和部署。
Docker可以在整个开发周期辅助实现快速交付,允许开发者在装有应用和服务器本地容器做开发。可以直接集成到可持续的开发流程中。
Docker可以快速创建容器,快速迭代应用程序,过程全程可见,可以节约开发测试部署的时间。
例如:用一个标准的镜像,构建一套开发容器,开发完成后,运维可以直接使用容器这个容器部署代码。
高效的部署和扩容。
Docker容器几乎可以在任意平台运行,包括物理机,虚拟机,公有云,私有云,个人电脑,服务器等。用户可以把一个应用程序从一个平台直接迁移到另一个平台上。
Docker的兼容性和轻量特性可以轻松的实现负载的动态管理
更高的资源利用率。
Docker对系统的利用率很高,一台主机可以同时运行上千个Docker容器,容器除了运行其中的应用,不会消耗额外的系统资源,使应用性能很高。开销减少。
例如:传统的虚机方式运行10个不同的应用,需要起十个虚机.
而Docker只需要启动10个隔离的应用即可。
4,更简单的管理。
Docker只需要小小的修改,就可以代替大量的更新工作,所有的改动都
增量的方式被分发和更新,实现自动化高效的管理。
Docker引擎
Docker引擎是C/S结构的应用,主要组件如下。
Server是一个常驻进程
RESET API 实现了client(客户端)和server(服务器)的交互协议
CLI实现了容器和镜像的管理,提供统一的操作界面。
Docker架构
Docker使用C/S架构,Cilent(客户端)通过接口与Server(服务器)进行通信实现容器的构建,运行和发布。Cilent和Server可以运行在同一台集群,也可以跨主机实现远程通讯。
Client(客户端)
Registry(注册表)
Images(镜像)
Containers(容器)
Docker deamon 是docker的守护进程,Client通过命令与Docker deamon进行通讯,完成Docker相关操作。
Docker host是docker的网络模式,网络模式共四种。
核心概念:
镜像(image)
Docker image只是一个只读的模版。
镜像(Image)是(read-only layer)的统一视角
Union File System将不同的层整合成一个文件系统,提供了 一个统一的视角,可以隐藏多层的存在,对用户来说,只是有一个文件系统而已。
例如:一个镜像可以包含一个完整的操作系统环境,里面仅仅安装了Apache或者用户需要的其他的应用程序。镜像可以用来创建Docker容器,一个镜像中可以创建很多容器。Docker提供了一个简单的机制来创建,更新现有的镜像,用户也可以下载一个做好的镜像直接使用。
仓库(repository)
Repository是一个存放镜像文件的场所。
仓库注册服务器上往往存在多个仓库,每个仓库中又包含多个镜像,每个镜像有不同的标签(tag)
仓库分为public和private两种形式。最大的公开仓库是 Docker Hub存放了数量庞大的镜像供用户下载。国内有时速云,网易云等。用户也可以在本地网络创建一个私有仓库。
Docker仓库跟Git类似,注册服务可以理解为GitHub这种托管服务。
容器(Container)
Docker利用容器来运行应用,容器是从镜像创建出来的运行实例,容器可以,被启动,开始,停止,删除。每个容器都可以相互隔离,保证平台安全。
容器和镜像的区别是镜像是只读的,容器最上面的一层是可读可写的。
运行时的容器被定义为一个可读可写的统一的文件系统。加上隔离进程空间和包含其中的进程。
文件隔离技术使Docker成为了一个很有潜力的虚拟化技术,一个容器中的进程可能会对文件进行修改,删除,创建,这些改变作用于可读写层。
————————————————