容器第一天学习之-docker的概述

 

docker是什么

docker是由go语言开发实现,基于linux内核的cgroup,namesqace以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术,

由于隔离的进程独立于宿主机和其它的隔离的进程,因此也称其为容器

最早实现是基于LXC的,但从0.7版本后,开始去除了LXC,转而使用了自行开发的libcontainer,在1.11版本开始后,则进一步使用了runCcontainerd.

 

docker也是使用最广泛的开源容器引擎

docker不是容器,它是容器引擎,并不是容器,而是创建容器

 

docker是一种操作系统级的虚拟化技术

它是基于Linux,共享了linux内核,以及所有涉到的所有硬件资源

它本身不会虚拟硬件,只会共享使用宿主机的硬件

所以docker是在进程层面上的隔离

 

docker依赖linux内核特性,namespace(资源隔离),cgroups(资源限制) ,来实现隔离

 

docker也可以说是一个简单的应用程序打包工具

打包的是项目代码以及项目所使用的环境

用于保障完整性,一致性,易迁移性,标准化。

docker也是一种跨平台的开源项目

 

 

============================================================================

============================================================================

============================================================================

 

 

docker的基本组成

docker是由,客户端,守护进程,镜像,容器,镜像仓库为基本架构组成

 

docker Client:客户端

Ddocker Daemon:守护进程

提供一个管理工具,可以使用docker的命令来管理

也就是说,dockerC/S(客户端client-服务器server)的模式

docker通过客户端连接守护进程,通过命令向守护进程发出请求,守护进程通过一系列的操作后返回结果

docker客户端可以连接本地或者远程的守护进程

docker客户端和服务器是通过socketRETSful API  来进行通信

 

Docker lmages:镜像

docker镜像是容器的基石,容器基于镜像启动和运行,镜像就类似于容器的源代码,保存了容器各种启动的条件

镜像也是一个层叠的只读文件系统 或 分层的只读文件系统

 

Docker Container:容器

容器通过镜像来启动,容器是docker的执行来源,可以执行一个或多少进程

镜像也相当于构建和打包阶段

容器也相当于启动和执行阶段

容器启动时,容器可以运行,开始,停止,移动,删除。

每个容器都是独立的,安全的应用级平台

 

Docker Registry:镜像仓库

镜像仓库是用于保存镜像,镜像仓库也分为,公有和私有仓库

docker官方有提供公有仓库docker hub,网址:hub.docker.com

我们也可以搭建属于自己的私有仓库

 

以下图,来源于官方

 

 

 

============================================================================

============================================================================

============================================================================

 

 

容器跟虚拟机的区别

 

虚拟机是硬件级虚拟化,也可以是系统级虚拟化,需要虚拟出独立的虚拟硬件

容器是系统级虚拟化,只能在操作系统上使用,不会虚拟出虚拟硬件,它是共享宿主机本身的硬件

 

 

 

容器:创建容器就像是创建进程一样,方便,浪费资源小

虚拟机:虚拟机使用,需要虚拟出完整的系统级,启动时慢,资源比较浪费

 

 

 

============================================================================

============================================================================

============================================================================

 

 

 

docker常见的应用场景

 

应用程序打包和发布

 

应用程序的隔离

虽然docker是进程级别的隔离,但是在一台宿主机上有多台docker容器,这多台容器是相互隔离的,不相通的。

 

持续集成

 

部署微服务

 

快速搭建测试环境

 

提供PaaS产品(平台即服务)

类似于,阿里云的容器云,腾讯云的容器云等

 

 

 

转载请注明原文链接:容器第一天学习之-docker的概述

发表评论:

共有 0 条评论

 Top